--******************************************************************************************************************** -- Created: 30-Mar-2010 17:01:54 by OpenVMS SDL EV3-3 -- Source: 25-MAR-2004 10:51:49 $1$DGA7274:[STARLET_ADA.LIS]PMMDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package PMMDEF is -- module $PMMDEF --+ -- PFN memory data structure definition. This structure is used to access the -- fields within the PFN memory map returned by $GETSYI. $GETSYI copies the -- contents of the pool packet stored at MMG$GL_SYI_PFN_MEMORY_MAP to a -- user-supplied buffer. --- PMM_M_CONSOLE : constant := 16#00000001#; PMM_M_OPENVMS : constant := 16#00000002#; PMM_M_AVAILABLE : constant := 16#00000004#; PMM_M_BASE : constant := 16#00000008#; PMM_M_GALAXY_SHARED : constant := 16#00000010#; PMM_M_UNDEFINED_5_15 : constant := 16#0000FFE0#; PMM_C_LENGTH : constant := 12; -- Length of structure PMM_K_LENGTH : constant := 12; -- Length of structure type PMM_FLAGS_TYPE is record CONSOLE : BOOLEAN; -- Used by Console OPENVMS : BOOLEAN; -- Used by OpenVMS AVAILABLE : BOOLEAN; -- Available for Other Uses BASE : BOOLEAN; -- Galaxy base memory segment GALAXY_SHARED : BOOLEAN; -- Galaxy shared memory UNDEFINED_5_15 : UNSIGNED_11; -- Undefined bits should be zero end record; for PMM_FLAGS_TYPE use record CONSOLE at 0 range 0 .. 0; OPENVMS at 0 range 1 .. 1; AVAILABLE at 0 range 2 .. 2; BASE at 0 range 3 .. 3; GALAXY_SHARED at 0 range 4 .. 4; UNDEFINED_5_15 at 0 range 5 .. 15; end record; for PMM_FLAGS_TYPE'SIZE use 16; PMM_FLAGS_TYPE_INIT : constant PMM_FLAGS_TYPE := (CONSOLE => FALSE, OPENVMS => FALSE, AVAILABLE => FALSE, BASE => FALSE, GALAXY_SHARED => FALSE, UNDEFINED_5_15 => 0); type PMM_TYPE is record LENGTH : INTEGER_16; -- Size of a PMM structure FLAGS : PMM_FLAGS_TYPE; START_PFN : UNSIGNED_LONGWORD; -- First PFN in this cluster PFN_COUNT : UNSIGNED_LONGWORD; -- Number of PFNs in this cluster end record; for PMM_TYPE use record LENGTH at 0 range 0 .. 15; FLAGS at 2 range 0 .. 15; START_PFN at 4 range 0 .. 31; PFN_COUNT at 8 range 0 .. 31; end record; for PMM_TYPE'SIZE use 96; PMM_TYPE_INIT : constant PMM_TYPE := (LENGTH => 0, FLAGS => PMM_FLAGS_TYPE_INIT, START_PFN => 0, PFN_COUNT => 0); -- Expanded version for larger PFNs PMM64_M_CONSOLE : constant := 16#00000001#; PMM64_M_OPENVMS : constant := 16#00000002#; PMM64_M_AVAILABLE : constant := 16#00000004#; PMM64_M_BASE : constant := 16#00000008#; PMM64_M_GALAXY_SHARED : constant := 16#00000010#; PMM64_M_UNDEFINED_5_15 : constant := 16#0000FFE0#; PMM64_C_LENGTH : constant := 24; -- Length of structure PMM64_K_LENGTH : constant := 24; -- Length of structure type PMM64_FLAGS_TYPE is record CONSOLE : BOOLEAN; -- Used by Console OPENVMS : BOOLEAN; -- Used by OpenVMS AVAILABLE : BOOLEAN; -- Available for Other Uses BASE : BOOLEAN; -- Galaxy base memory segment GALAXY_SHARED : BOOLEAN; -- Galaxy shared memory UNDEFINED_5_15 : UNSIGNED_11; -- Undefined bits should be zero end record; for PMM64_FLAGS_TYPE use record CONSOLE at 0 range 0 .. 0; OPENVMS at 0 range 1 .. 1; AVAILABLE at 0 range 2 .. 2; BASE at 0 range 3 .. 3; GALAXY_SHARED at 0 range 4 .. 4; UNDEFINED_5_15 at 0 range 5 .. 15; end record; for PMM64_FLAGS_TYPE'SIZE use 16; PMM64_FLAGS_TYPE_INIT : constant PMM64_FLAGS_TYPE := (CONSOLE => FALSE, OPENVMS => FALSE, AVAILABLE => FALSE, BASE => FALSE, GALAXY_SHARED => FALSE, UNDEFINED_5_15 => 0); type PMM64_TYPE is record LENGTH : INTEGER_16; -- Size of a PMM structure FLAGS : PMM64_FLAGS_TYPE; RESERVED : UNSIGNED_LONGWORD; -- padding START_PFN : UNSIGNED_QUADWORD; -- First PFN in this cluster PFN_COUNT : UNSIGNED_QUADWORD; -- Number of PFNs in this cluster end record; for PMM64_TYPE use record LENGTH at 0 range 0 .. 15; FLAGS at 2 range 0 .. 15; RESERVED at 4 range 0 .. 31; START_PFN at 8 range 0 .. 63; PFN_COUNT at 16 range 0 .. 63; end record; for PMM64_TYPE'SIZE use 192; PMM64_TYPE_INIT : constant PMM64_TYPE := (LENGTH => 0, FLAGS => PMM64_FLAGS_TYPE_INIT, RESERVED => 0, START_PFN => (0, 0), PFN_COUNT => (0, 0)); end PMMDEF;