/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:37:55 by OpenVMS SDL EV3-3 */ /* Source: 29-JAN-2009 12:26:14 $1$DGA7274:[LIB_H.SRC]PFNDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $PFNDEF ***/ #ifndef __PFNDEF_LOADED #define __PFNDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif #include /* Define the SHM_ID type; PFN contains embedded SHM_ID types */ /*+ */ /* PFN memory data structure definition. This structure is used to access the */ /* fields within the PFN memory maps. In Galaxy systems, there is a PFN */ /* memory map for I/O space, private and shared memory. */ /* */ /* In non-Galaxy systems, there is only a PFN memory map for private memory. */ /* */ /*- */ #define PMAP$C_LENGTH 8 /* Length of PMAP */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _pmap { #pragma __nomember_alignment __union { unsigned int pmap$l_start_pfn; /* First PFN in this cluster */ unsigned int pmap$i_start_pfn; /* First PFN in this cluster */ } pmap$r_start_pfn_overlay; __union { unsigned int pmap$l_pfn_count; /* Number of PFNs in this cluster */ unsigned int pmap$i_pfn_count; /* Number of PFNs in this cluster */ } pmap$r_pfn_count_overlay; } PMAP; #if !defined(__VAXC) #define pmap$l_start_pfn pmap$r_start_pfn_overlay.pmap$l_start_pfn #define pmap$i_start_pfn pmap$r_start_pfn_overlay.pmap$i_start_pfn #define pmap$l_pfn_count pmap$r_pfn_count_overlay.pmap$l_pfn_count #define pmap$i_pfn_count pmap$r_pfn_count_overlay.pmap$i_pfn_count #endif /* #if !defined(__VAXC) */ /*+ */ /* In Galaxy shared memory, PLNKs are used as the structure that links PFN */ /* database entries in the free page list (and other lists). */ /* */ /*- */ #define PLNK$C_LENGTH 8 /* Length of PLNK */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _plnk { #pragma __nomember_alignment __union { unsigned __int64 plnk$q_pfn_list_link; __struct { unsigned int plnk$l_next_pfn; /* Next PFN in this list, -1 terminates list */ unsigned int plnk$l_pfn_count; /* Number of PFNs in this cluster */ } plnk$r_plnk_longwords; __struct { unsigned int plnk$i_next_pfn; /* Next PFN in this list, -1 terminates list */ unsigned int plnk$i_pfn_count; /* Number of PFNs in this cluster */ } plnk$r_plnk_i_longwords; } plnk$r_link_union; } PLNK; #if !defined(__VAXC) #define plnk$q_pfn_list_link plnk$r_link_union.plnk$q_pfn_list_link #define plnk$r_plnk_longwords plnk$r_link_union.plnk$r_plnk_longwords #define plnk$l_next_pfn plnk$r_plnk_longwords.plnk$l_next_pfn #define plnk$l_pfn_count plnk$r_plnk_longwords.plnk$l_pfn_count #define plnk$r_plnk_i_longwords plnk$r_link_union.plnk$r_plnk_i_longwords #define plnk$i_next_pfn plnk$r_plnk_i_longwords.plnk$i_next_pfn #define plnk$i_pfn_count plnk$r_plnk_i_longwords.plnk$i_pfn_count #endif /* #if !defined(__VAXC) */ /*+ */ /* PFN Data Base Definitions */ /*- */ /* */ /* Define the PFN database record offsets. */ /* */ /* XDELTA provides embedded command strings for displaying the PFN database records. Any */ /* change to the PFN database record here must be implemented in the XDELTA command strings */ /* as well to avoid breaking them. */ /* */ #define PFN$M_PAGTYP 0x7 #define PFN$M_LOC 0xF0 #define PFN$M_BUFOBJ 0x100 #define PFN$M_COLLISION 0x200 #define PFN$M_BADPAG 0x400 #define PFN$M_RPTEVT 0x800 #define PFN$M_DELCON 0x1000 #define PFN$M_MODIFY 0x2000 #define PFN$M_UNAVAILABLE 0x4000 #define PFN$M_SWPPAG_VALID 0x8000 #define PFN$M_TOP_LEVEL_PT 0x10000 #define PFN$M_SLOT 0x20000 #define PFN$M_SHARED 0x40000 #define PFN$M_ZEROED 0x80000 #define PFN$M_VRNX 0xF00000000000 #define PFN$S_VRNX_WIDTH 4 #define PFN$S_INDEX_WIDTH 44 #define PFN$M_TYP0 0x10000 #define PFN$M_PARTIAL_SECTION 0x80000 #define PFN$M_GBLBAK 0x80000000 #define PFN$M_STX 0xFFFF00000000 #define PFN$M_CRF 0x1000000000000 #define PFN$M_DZRO 0x2000000000000 #define PFN$M_WRT 0x4000000000000 #define PFN$M_STX_HIBIT 0x8000000000000 #define PFN$M_PGFLPAG 0xFFFFFF00000000 #define PFN$M_PGFLX 0xFF00000000000000 #define PFN$M_PGFLMAP 0xFFFFFFFF00000000 #define PFN$M_BAKX 0xFFFFFFFF00000000 #define PFN$M_GPTX 0xFFFFFFFF00000000 #define PFN$C_ENTRY_SIZE 40 /* */ #define PFN$C_FREPAGLST 0 /* On FREE page list */ #define PFN$C_MFYPAGLST 1 /* On MODIFIED page list */ #define PFN$C_BADPAGLST 2 /* On BAD page list */ #define PFN$C_RELPEND 3 /* RELease PENDing */ /* (when REFCNT=0 release PFN) */ #define PFN$C_UNTESTED 3 /* On UNTESTED memory list */ #define PFN$C_RDERR 4 /* Read error while paging in */ #define PFN$C_WRTINPROG 5 /* Write in progress (by MFY PAG WRITER) */ #define PFN$C_RDINPROG 6 /* Read in progress (page in) */ #define PFN$C_ZERO_LIST 7 /* On ZEROED page list */ #define PFN$C_PRVPFN 8 /* On private PFN list */ #define PFN$C_ACTIVE 15 /* Page is ACTIVE and VALID */ /* */ #define PFN$C_PROCESS 0 /* Process page */ #define PFN$C_SYSTEM 1 /* System page */ #define PFN$C_GLOBAL 2 /* Global page (read only) */ #define PFN$C_GBLWRT 3 /* Global Writable page */ #define PFN$C_PPGTBL 4 /* Process Page Table */ #define PFN$C_GPGTBL 5 /* Global Page Table */ #define PFN$C_RESERVED 6 /* reserved */ #define PFN$C_UNKNOWN 7 /* Uninitialized db for this PFN */ #define PFN$C_PFNLST 1 /* Shared memory PFNLST page */ #define PFN$C_SHM_REG 3 /* Shared memory region page */ #define PFN$S_PFNDEF 40 #ifdef __cplusplus /* Define structure prototypes */ struct _phd; #endif /* #ifdef __cplusplus */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _pfn { #pragma __nomember_alignment __union { PLNK pfn$r_shm_list_link; SHM_ID pfn$r_shm_reg_id; /* Shared memory region ID */ __struct { __union { unsigned int pfn$l_flink; /* Forward PFN link index */ unsigned int pfn$i_flink; /* Forward PFN link index */ unsigned int pfn$l_shrcnt; /* Number of process PTEs mapped to global page */ } pfn$r_flink_overlay; __union { unsigned int pfn$l_blink; /* Backward PFN link index */ unsigned int pfn$i_blink; /* Backward PFN link index */ unsigned int pfn$l_wslx_qw; /* Working Set List Index for valid page, quadword index */ unsigned int pfn$l_gbl_lck_cnt; /* Count of memory locks for global page */ } pfn$r_blink_overlay; } pfn$r_flink_blink_struct; } pfn$r_flink_blink_union; __union { unsigned int pfn$l_page_state; /* Page state information */ /* */ /* VIELD definitions in PFN$AL_PAGE_STATE */ /* */ __struct { unsigned pfn$v_pagtyp : 3; /* Page type */ unsigned pfndef$$_fill_1 : 1; /* Reserved */ unsigned pfn$v_loc : 4; /* Location of page */ unsigned pfn$v_bufobj : 1; /* Set if any buffer objects reference this PFN */ unsigned pfn$v_collision : 1; /* Empty collision queue when page read complete */ unsigned pfn$v_badpag : 1; /* Bad page bit */ unsigned pfn$v_rptevt : 1; /* Report event on I/O complete */ unsigned pfn$v_delcon : 1; /* Delete PFN contents when REF=0 */ unsigned pfn$v_modify : 1; /* Modify bit, indicates page is dirty */ unsigned pfn$v_unavailable : 1; /* PFN is unavailable to software (such as for console) */ unsigned pfn$v_swppag_valid : 1; /* Set if SWPPAG contains a swap page number */ unsigned pfn$v_top_level_pt : 1; /* Denotes a page table at the highest level of translation hierarchy */ unsigned pfn$v_slot : 1; /* Donotes a page mapped into a process's balance slot */ unsigned pfn$v_shared : 1; /* Shared memory page */ unsigned pfn$v_zeroed : 1; /* SHMGS page is zeroed */ unsigned pfndef$$_fill_3 : 12; /* Reserved */ } pfn$r_pfndef_bits0; } pfn$r_page_state_overlay; __union { unsigned int pfn$l_pt_pfn; /* PFN of the PT that contains the PTE that maps target PFN */ unsigned int pfn$i_pt_pfn; /* PFN of the PT that contains the PTE that maps target PFN */ unsigned int pfn$l_shm_cpp_id; /* SHM_CPP id that this page belongs to (if shared memory) */ } pfn$r_pt_pfn_overlay; /* Alpha */ /* IA64 */ __union { unsigned __int64 pfn$q_pte_index; /* Container QW for the PTE index field */ /* PTE Index must occupies low 48 bits of this QW */ __struct { int pfn$l_refcnt_fill1; unsigned pfn$v_refcnt_fill2 : 12; unsigned pfn$v_vrnx : 4; /* Virtual address space number */ unsigned short int pfn$w_refcnt; /* Number of references to this PFN's contents */ } pfn$r_refcnt1_overlay; } pfn$r_pte_index_overlay; __union { unsigned __int64 pfn$q_bak; /* Backing store address for this page */ struct _phd *pfn$l_phd; /* PHD VA (L1PT PFN only) */ __struct { __union { unsigned int pfn$l_color_flink; /* Forward PFN link for page's color list */ unsigned int pfn$i_color_flink; /* Forward PFN link for page's color list */ } pfn$r_color_flink_union; __union { unsigned int pfn$l_color_blink; /* Backward PFN link for page's color list */ unsigned int pfn$i_color_blink; /* Backward PFN link for page's color list */ } pfn$r_color_blink_union; } pfn$r_color_overlay; __struct { unsigned pfn$v_fill_5 : 16; unsigned pfn$v_typ0 : 1; /* Backing store in section (not pagefile) */ unsigned pfn$v_fill_6 : 2; unsigned pfn$v_partial_section : 1; /* Page only partially maps a section */ unsigned pfn$v_fill_7 : 11; unsigned pfn$v_gblbak : 1; /* Global backing store address (GPTX form) */ } pfn$r_pfndef_bits2; __struct { unsigned pfn$v_fill_13 : 32; unsigned pfn$v_stx : 16; /* Section Table Index */ unsigned pfn$v_crf : 1; /* Copy on Reference */ unsigned pfn$v_dzro : 1; /* Demand Zero */ unsigned pfn$v_wrt : 1; /* Section file accessed for write */ unsigned pfn$v_stx_hibit : 1; unsigned pfn$v_fill_0_ : 4; } pfn$r_bak_stx; __struct { unsigned pfn$v_fill_9 : 32; unsigned pfn$v_pgflpag : 24; /* Page file page (not a VBN) */ unsigned pfn$v_pgflx : 8; /* SYSTEM page file index */ } pfn$r_bak_pgfl; __struct { unsigned pfn$v_fill_10 : 32; unsigned pfn$v_pgflmap : 32; /* PGFLPAG/PGFLX combination */ } pfn$r_bak_pgflmap; __struct { unsigned pfn$v_fill_11 : 32; unsigned pfn$v_bakx : 32; /* Backup address (uninterpreted) */ } pfn$r_bakx_field; __struct { unsigned pfn$v_fill_12 : 32; unsigned pfn$v_gptx : 32; /* Global Page Table Index */ } pfn$r_bak_gptx; unsigned __int64 pfn$q_bak_prvpfn; /* Pointer to "owning" private list of (free) PFNs */ } pfn$r_bak_overlay; __union { unsigned short int pfn$w_swppag; /* Page number in swap area to receive this page */ unsigned short int pfn$w_bo_refc; /* Buffer Object reference count (no swap possible) */ unsigned short int pfn$w_io_sts; } pfn$r_swppag_overlay; unsigned short int pfn$w_pt_val_cnt; unsigned short int pfn$w_pt_lck_cnt; unsigned short int pfn$w_pt_win_cnt; /* Location VIELD values */ /* */ /* Page Type VIELD definitions */ /* */ } PFN; #if !defined(__VAXC) #define pfn$r_shm_list_link pfn$r_flink_blink_union.pfn$r_shm_list_link #define pfn$r_shm_reg_id pfn$r_flink_blink_union.pfn$r_shm_reg_id #define pfn$l_flink pfn$r_flink_blink_union.pfn$r_flink_blink_struct.pfn$r_flink_overlay.pfn$l_flink #define pfn$i_flink pfn$r_flink_blink_union.pfn$r_flink_blink_struct.pfn$r_flink_overlay.pfn$i_flink #define pfn$l_shrcnt pfn$r_flink_blink_union.pfn$r_flink_blink_struct.pfn$r_flink_overlay.pfn$l_shrcnt #define pfn$l_blink pfn$r_flink_blink_union.pfn$r_flink_blink_struct.pfn$r_blink_overlay.pfn$l_blink #define pfn$i_blink pfn$r_flink_blink_union.pfn$r_flink_blink_struct.pfn$r_blink_overlay.pfn$i_blink #define pfn$l_wslx_qw pfn$r_flink_blink_union.pfn$r_flink_blink_struct.pfn$r_blink_overlay.pfn$l_wslx_qw #define pfn$l_gbl_lck_cnt pfn$r_flink_blink_union.pfn$r_flink_blink_struct.pfn$r_blink_overlay.pfn$l_gbl_lck_cnt #define pfn$l_page_state pfn$r_page_state_overlay.pfn$l_page_state #define pfn$v_pagtyp pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_pagtyp #define pfn$v_loc pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_loc #define pfn$v_bufobj pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_bufobj #define pfn$v_collision pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_collision #define pfn$v_badpag pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_badpag #define pfn$v_rptevt pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_rptevt #define pfn$v_delcon pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_delcon #define pfn$v_modify pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_modify #define pfn$v_unavailable pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_unavailable #define pfn$v_swppag_valid pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_swppag_valid #define pfn$v_top_level_pt pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_top_level_pt #define pfn$v_slot pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_slot #define pfn$v_shared pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_shared #define pfn$v_zeroed pfn$r_page_state_overlay.pfn$r_pfndef_bits0.pfn$v_zeroed #define pfn$l_pt_pfn pfn$r_pt_pfn_overlay.pfn$l_pt_pfn #define pfn$i_pt_pfn pfn$r_pt_pfn_overlay.pfn$i_pt_pfn #define pfn$l_shm_cpp_id pfn$r_pt_pfn_overlay.pfn$l_shm_cpp_id #define pfn$q_pte_index pfn$r_pte_index_overlay.pfn$q_pte_index #define pfn$v_vrnx pfn$r_pte_index_overlay.pfn$r_refcnt1_overlay.pfn$v_vrnx #define pfn$w_refcnt pfn$r_pte_index_overlay.pfn$r_refcnt1_overlay.pfn$w_refcnt #define pfn$q_bak pfn$r_bak_overlay.pfn$q_bak #define pfn$l_phd pfn$r_bak_overlay.pfn$l_phd #define pfn$r_color_flink_union pfn$r_bak_overlay.pfn$r_color_overlay.pfn$r_color_flink_union #define pfn$l_color_flink pfn$r_color_flink_union.pfn$l_color_flink #define pfn$i_color_flink pfn$r_color_flink_union.pfn$i_color_flink #define pfn$r_color_blink_union pfn$r_bak_overlay.pfn$r_color_overlay.pfn$r_color_blink_union #define pfn$l_color_blink pfn$r_color_blink_union.pfn$l_color_blink #define pfn$i_color_blink pfn$r_color_blink_union.pfn$i_color_blink #define pfn$v_typ0 pfn$r_bak_overlay.pfn$r_pfndef_bits2.pfn$v_typ0 #define pfn$v_partial_section pfn$r_bak_overlay.pfn$r_pfndef_bits2.pfn$v_partial_section #define pfn$v_gblbak pfn$r_bak_overlay.pfn$r_pfndef_bits2.pfn$v_gblbak #define pfn$v_stx pfn$r_bak_overlay.pfn$r_bak_stx.pfn$v_stx #define pfn$v_crf pfn$r_bak_overlay.pfn$r_bak_stx.pfn$v_crf #define pfn$v_dzro pfn$r_bak_overlay.pfn$r_bak_stx.pfn$v_dzro #define pfn$v_wrt pfn$r_bak_overlay.pfn$r_bak_stx.pfn$v_wrt #define pfn$v_stx_hibit pfn$r_bak_overlay.pfn$r_bak_stx.pfn$v_stx_hibit #define pfn$v_pgflpag pfn$r_bak_overlay.pfn$r_bak_pgfl.pfn$v_pgflpag #define pfn$v_pgflx pfn$r_bak_overlay.pfn$r_bak_pgfl.pfn$v_pgflx #define pfn$v_pgflmap pfn$r_bak_overlay.pfn$r_bak_pgflmap.pfn$v_pgflmap #define pfn$v_bakx pfn$r_bak_overlay.pfn$r_bakx_field.pfn$v_bakx #define pfn$v_gptx pfn$r_bak_overlay.pfn$r_bak_gptx.pfn$v_gptx #define pfn$q_bak_prvpfn pfn$r_bak_overlay.pfn$q_bak_prvpfn #define pfn$w_swppag pfn$r_swppag_overlay.pfn$w_swppag #define pfn$w_bo_refc pfn$r_swppag_overlay.pfn$w_bo_refc #define pfn$w_io_sts pfn$r_swppag_overlay.pfn$w_io_sts #endif /* #if !defined(__VAXC) */ /* PRVPFN - head of a private list of free PFNs */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _prvpfn { #pragma __nomember_alignment struct _prvpfn *prvpfn$l_sqfl; /* PRVPFN queue flink */ struct _prvpfn *prvpfn$l_sqbl; /* PRVPFN queue blink */ unsigned short int prvpfn$w_size; /* structure size */ unsigned char prvpfn$b_type; /* structure type code (MISC) */ unsigned char prvpfn$b_subtype; /* structure type subcode (PRVPFN) */ __union { unsigned int prvpfn$l_count; /* number of elements in list */ unsigned int prvpfn$i_count; /* number of elements in list */ } prvpfn$r_count_overlay; __union { unsigned int prvpfn$l_head; /* PFN of first element in queue */ unsigned int prvpfn$i_head; /* PFN of first element in queue */ } prvpfn$r_head_overlay; __union { unsigned int prvpfn$l_tail; /* PFN of last element in queue */ unsigned int prvpfn$i_tail; /* PFN of last element in queue */ } prvpfn$r_tail_overlay; unsigned int prvpfn$l_reclaimable; /* # PFNs attributed to this list */ unsigned int prvpfn$l_reclaimed; /* # PFNs reclaimed but not yet returned */ int prvpfn$l_priority; /* priority of elements on this list */ void (*prvpfn$a_callback)(); /* callback routine */ } PRVPFN; #if !defined(__VAXC) #define prvpfn$l_count prvpfn$r_count_overlay.prvpfn$l_count #define prvpfn$i_count prvpfn$r_count_overlay.prvpfn$i_count #define prvpfn$l_head prvpfn$r_head_overlay.prvpfn$l_head #define prvpfn$i_head prvpfn$r_head_overlay.prvpfn$i_head #define prvpfn$l_tail prvpfn$r_tail_overlay.prvpfn$l_tail #define prvpfn$i_tail prvpfn$r_tail_overlay.prvpfn$i_tail #endif /* #if !defined(__VAXC) */ #define PRVPFN$K_LENGTH 40 /* length of block */ #define PRVPFN$C_LENGTH 40 /* length of block */ #ifdef __INITIAL_POINTER_SIZE #pragma __required_pointer_size __save /* Save current pointer size */ #pragma __required_pointer_size __long /* Pointers are 64-bit */ typedef struct _pfn * PFN_PQ; /* Long pointer to a PFN structure. */ typedef struct _pfn ** PFN_PPQ; /* Long pointer to a pointer to a PFN structure. */ typedef struct _prvpfn * PRVPFN_PQ; /* Long pointer to a PRVPFN structure. */ typedef struct _prvpfn ** PRVPFN_PPQ; /* Long pointer to a pointer to a PRVPFN structure. */ typedef struct _pmap * PMAP_PQ; /* Long pointer to a PMAP structure */ typedef struct _pmap ** PMAP_PPQ; /* Long pointer to a pointer to a PMAP structure */ typedef struct _plnk * PLNK_PQ; /* Long pointer to a PLNK structure */ #pragma __required_pointer_size __restore /* Return to previous pointer size */ #else typedef unsigned __int64 PFN_PQ; typedef unsigned __int64 PFN_PPQ; typedef unsigned __int64 PRVPFN_PQ; typedef unsigned __int64 PRVPFN_PPQ; typedef unsigned __int64 PMAP_PQ; typedef unsigned __int64 PMAP_PPQ; typedef unsigned __int64 PLNK_PQ; #endif /* __INITIAL_POINTER_SIZE */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __PFNDEF_LOADED */