--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:17 by OpenVMS SDL EV3-3 -- Source: 25-AUG-2005 12:49:26 $1$DGA8085:[LIB_ADA.LIS]BOOPARDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package BOOPARDEF is -- module $boopardef BOOPAR_K_LENGTH : constant := 360; -- Length of argument list type BOOPARAM_TYPE is record ARG_REVISION : UNSIGNED_LONGWORD; -- Argument list revision PFN_MAP : ADDRESS; -- Address of allocation bitmap STATE : UNSIGNED_LONGWORD; -- exe$gl_state VA_TO_VPN : UNSIGNED_LONGWORD; -- Negated vpn_to_va VPN_TO_VA : UNSIGNED_LONGWORD; -- Size of byte within page field BWP_MASK : UNSIGNED_LONGWORD; -- Byte within a page mask FILE_CACHE : ADDRESS; -- addr of file cache CACHE_SIZE : UNSIGNED_LONGWORD; -- file cache size SPTBASE : ADDRESS; -- SPT base SCB : ADDRESS; -- SCB address HPDESC : ADDRESS; -- ldr huge page structure XDTSCB : ADDRESS; -- Xdelta's SCB address L1_BASE : UNSIGNED_QUADWORD; -- VA of L1PT in PT_space for process space L2_BASE : UNSIGNED_QUADWORD; -- VA of L2PTs in PT_space for process space NON_VA_MASK : UNSIGNED_QUADWORD; -- Mask for bits above L1 MSB PT_BASE : UNSIGNED_QUADWORD; -- VA of PT_space base for process space SYSTEM_L1_INDEX : UNSIGNED_LONGWORD; -- L1 index of S0/S1 L1PTE PT_SPACE_L1_INDEX : UNSIGNED_LONGWORD; -- L1 index of self-mapped L1PTE for process space GAP_LO : UNSIGNED_QUADWORD; -- Low address end of gap GAP_HI : UNSIGNED_QUADWORD; -- High address end of gap PROC_SPACE_LIM : UNSIGNED_QUADWORD; -- Highest process space address S0S1BASE_PTE_ADDR : UNSIGNED_QUADWORD; -- Address of PTE that maps base of S0/S1 space SHARED_VA_PTES : UNSIGNED_QUADWORD; -- Boundary between process and system ptes SYS_VIRT_BASE : UNSIGNED_QUADWORD; -- Base address of system space (lowest addr in S2) VA_BITS : UNSIGNED_LONGWORD; -- Number of bits in 3 level fields plus byte -- within page field FILLER_1 : UNSIGNED_LONGWORD; -- VIRBND : UNSIGNED_QUADWORD; -- VIRBND register contents SYSPTBR : UNSIGNED_QUADWORD; -- System Page Table Base Register L1_BASESYS : UNSIGNED_QUADWORD; -- VA of L1PT in PT_space for system space L2_BASESYS : UNSIGNED_QUADWORD; -- VA of L2PTs in PT_space for system space PT_BASESYS : UNSIGNED_QUADWORD; -- VA of PT_space base for system space PT_SPACE_L1_INDEXSYS : UNSIGNED_LONGWORD; -- L1 index of self-mapped L1PTE for system space FILLER_2 : UNSIGNED_LONGWORD; -- PAL_PROC : UNSIGNED_QUADWORD; -- Address of IA64 PAL code procedure entry point NON_PT_MASK : UNSIGNED_QUADWORD; -- Mask for bits not in segments LEVEL_WIDTH : UNSIGNED_QUADWORD; -- size of each segment field in VA; aka "level width" NON_PA_MASK : UNSIGNED_QUADWORD; -- mask for bits not in physical address range PTES_PER_PAGE : UNSIGNED_QUADWORD; -- how many PTEs fit into a page IDT : UNSIGNED_QUADWORD; -- pointer to IDT table SAL_PLABEL0 : UNSIGNED_QUADWORD; -- Code address of SAL SAL_PLABEL1 : UNSIGNED_QUADWORD; -- GP for SAL FPSWA : UNSIGNED_QUADWORD; -- Address of FPSWA routine EFI_RUNTIME_SERVICES : UNSIGNED_QUADWORD; -- Address of EFI runtime service routines EFI_SYSTEM_TABLE : UNSIGNED_QUADWORD; -- Address of EFI system table VCONS_PLABEL0 : UNSIGNED_QUADWORD; -- Code address of vcons service VCONS_PLABEL1 : UNSIGNED_QUADWORD; -- GP for vcons service MIN_BITMAP_PFN : UNSIGNED_QUADWORD; -- Lowest PFN described by the first allocation bitmap MAX_BITMAP_PFN : UNSIGNED_QUADWORD; -- Highest PFN described by the first allocation bitmap SHSBA_PLABEL0 : UNSIGNED_QUADWORD; -- Code address of shsba service SHSBA_PLABEL1 : UNSIGNED_QUADWORD; -- GP for shsba service ESI_TABLE : UNSIGNED_QUADWORD; -- Extensible SAL interface table MIN_BITMAP_PFN2 : UNSIGNED_QUADWORD; -- Lowest PFN described by the second allocation bitmap MAX_BITMAP_PFN2 : UNSIGNED_QUADWORD; -- Highest PFN described by the second allocation bitmap PFN_MAP2 : ADDRESS; -- Address of second allocation bitmap FILLER_3 : UNSIGNED_LONGWORD; -- end record; for BOOPARAM_TYPE use record ARG_REVISION at 0 range 0 .. 31; PFN_MAP at 4 range 0 .. 31; STATE at 8 range 0 .. 31; VA_TO_VPN at 12 range 0 .. 31; VPN_TO_VA at 16 range 0 .. 31; BWP_MASK at 20 range 0 .. 31; FILE_CACHE at 24 range 0 .. 31; CACHE_SIZE at 28 range 0 .. 31; SPTBASE at 32 range 0 .. 31; SCB at 36 range 0 .. 31; HPDESC at 40 range 0 .. 31; XDTSCB at 44 range 0 .. 31; L1_BASE at 48 range 0 .. 63; L2_BASE at 56 range 0 .. 63; NON_VA_MASK at 64 range 0 .. 63; PT_BASE at 72 range 0 .. 63; SYSTEM_L1_INDEX at 80 range 0 .. 31; PT_SPACE_L1_INDEX at 84 range 0 .. 31; GAP_LO at 88 range 0 .. 63; GAP_HI at 96 range 0 .. 63; PROC_SPACE_LIM at 104 range 0 .. 63; S0S1BASE_PTE_ADDR at 112 range 0 .. 63; SHARED_VA_PTES at 120 range 0 .. 63; SYS_VIRT_BASE at 128 range 0 .. 63; VA_BITS at 136 range 0 .. 31; FILLER_1 at 140 range 0 .. 31; VIRBND at 144 range 0 .. 63; SYSPTBR at 152 range 0 .. 63; L1_BASESYS at 160 range 0 .. 63; L2_BASESYS at 168 range 0 .. 63; PT_BASESYS at 176 range 0 .. 63; PT_SPACE_L1_INDEXSYS at 184 range 0 .. 31; FILLER_2 at 188 range 0 .. 31; PAL_PROC at 192 range 0 .. 63; NON_PT_MASK at 200 range 0 .. 63; LEVEL_WIDTH at 208 range 0 .. 63; NON_PA_MASK at 216 range 0 .. 63; PTES_PER_PAGE at 224 range 0 .. 63; IDT at 232 range 0 .. 63; SAL_PLABEL0 at 240 range 0 .. 63; SAL_PLABEL1 at 248 range 0 .. 63; FPSWA at 256 range 0 .. 63; EFI_RUNTIME_SERVICES at 264 range 0 .. 63; EFI_SYSTEM_TABLE at 272 range 0 .. 63; VCONS_PLABEL0 at 280 range 0 .. 63; VCONS_PLABEL1 at 288 range 0 .. 63; MIN_BITMAP_PFN at 296 range 0 .. 63; MAX_BITMAP_PFN at 304 range 0 .. 63; SHSBA_PLABEL0 at 312 range 0 .. 63; SHSBA_PLABEL1 at 320 range 0 .. 63; ESI_TABLE at 328 range 0 .. 63; MIN_BITMAP_PFN2 at 336 range 0 .. 63; MAX_BITMAP_PFN2 at 344 range 0 .. 63; PFN_MAP2 at 352 range 0 .. 31; FILLER_3 at 356 range 0 .. 31; end record; for BOOPARAM_TYPE'SIZE use 2880; BOOPARAM_TYPE_INIT : constant BOOPARAM_TYPE := (ARG_REVISION => 0, PFN_MAP => ADDRESS_ZERO, STATE => 0, VA_TO_VPN => 0, VPN_TO_VA => 0, BWP_MASK => 0, FILE_CACHE => ADDRESS_ZERO, CACHE_SIZE => 0, SPTBASE => ADDRESS_ZERO, SCB => ADDRESS_ZERO, HPDESC => ADDRESS_ZERO, XDTSCB => ADDRESS_ZERO, L1_BASE => (0, 0), L2_BASE => (0, 0), NON_VA_MASK => (0, 0), PT_BASE => (0, 0), SYSTEM_L1_INDEX => 0, PT_SPACE_L1_INDEX => 0, GAP_LO => (0, 0), GAP_HI => (0, 0), PROC_SPACE_LIM => (0, 0), S0S1BASE_PTE_ADDR => (0, 0), SHARED_VA_PTES => (0, 0), SYS_VIRT_BASE => (0, 0), VA_BITS => 0, FILLER_1 => 0, VIRBND => (0, 0), SYSPTBR => (0, 0), L1_BASESYS => (0, 0), L2_BASESYS => (0, 0), PT_BASESYS => (0, 0), PT_SPACE_L1_INDEXSYS => 0, FILLER_2 => 0, PAL_PROC => (0, 0), NON_PT_MASK => (0, 0), LEVEL_WIDTH => (0, 0), NON_PA_MASK => (0, 0), PTES_PER_PAGE => (0, 0), IDT => (0, 0), SAL_PLABEL0 => (0, 0), SAL_PLABEL1 => (0, 0), FPSWA => (0, 0), EFI_RUNTIME_SERVICES => (0, 0), EFI_SYSTEM_TABLE => (0, 0), VCONS_PLABEL0 => (0, 0), VCONS_PLABEL1 => (0, 0), MIN_BITMAP_PFN => (0, 0), MAX_BITMAP_PFN => (0, 0), SHSBA_PLABEL0 => (0, 0), SHSBA_PLABEL1 => (0, 0), ESI_TABLE => (0, 0), MIN_BITMAP_PFN2 => (0, 0), MAX_BITMAP_PFN2 => (0, 0), PFN_MAP2 => ADDRESS_ZERO, FILLER_3 => 0); end BOOPARDEF;