--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:32 by OpenVMS SDL EV3-3 -- Source: 18-MAY-1993 16:26:10 $1$DGA8085:[LIB_ADA.LIS]OSRDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package OSRDEF is -- module $OSRDEF --+ -- Object Support Routine flag definitions. -- -- This structure contains the flag definitions that are used -- to control processing between the security object management -- services and the Object Support Routines. These are internal -- flags used within the services and should not be used in the -- system service interfaces. --- OSR_M_ACCESS_CHECKED : constant := 16#00000001#; OSR_M_MOD_MAC : constant := 16#00000002#; OSR_M_NO_LOCK_RSN : constant := 16#00000004#; OSR_M_RUNDOWN : constant := 16#00000008#; OSR_M_WRITE : constant := 16#00000010#; OSR_M_MOD_ORB : constant := 16#00000020#; OSR_M_MOD_ACL : constant := 16#00000040#; OSR_M_MOD_FOR : constant := 16#00000080#; OSR_M_KERNEL_SETITM : constant := 16#00000100#; OSR_M_KERNEL_CLONE_PROFILE : constant := 16#00000200#; OSR_M_KERNEL_UPDATE_PROFILE : constant := 16#00000400#; OSR_M_KERNEL_RUNDOWN : constant := 16#00000800#; OSR_M_KERNEL_CHECK_ACCESS : constant := 16#00001000#; OSR_M_KERNEL_TRANQUILITY : constant := 16#00002000#; OSR_M_KERNEL_FIXUP_BTIME_ORBS : constant := 16#00004000#; OSR_M_RELCTX : constant := 16#00008000#; OSR_M_SELECT_NAME : constant := 16#00010000#; OSR_M_SELECT_HANDLE : constant := 16#00020000#; OSR_M_EMBED_OBJNAM : constant := 16#00040000#; OSR_M_CLUSTER_OBJECT : constant := 16#00080000#; OSR_M_CONTEXT_NAME : constant := 16#00100000#; OSR_M_CLUSTER_NOTIFY : constant := 16#00200000#; OSR_M_TEMPORARY : constant := 16#00400000#; OSR_M_PERMANENT : constant := 16#00800000#; OSR_M_NEW_OBJECT : constant := 16#01000000#; OSR_M_NO_CREATE : constant := 16#02000000#; OSR_M_NO_MAC_DAC : constant := 16#04000000#; OSR_M_NO_MAC_AUDIT : constant := 16#08000000#; OSR_M_MO_MAC_RANGE : constant := 16#10000000#; OSR_M_NO_MAC : constant := 16#20000000#; OSR_S_OSRDEF : constant := 4; -- Old size name - synonym type OSR_FLAG_BITS_TYPE is record ACCESS_CHECKED : BOOLEAN; -- Bypass chkpro in $xETSOI MOD_MAC : BOOLEAN; -- Secrecy/integrity hanged NO_LOCK_RSN : BOOLEAN; -- No need to build lock rsn in preprocess OSR RUNDOWN : BOOLEAN; -- Rundown OSR call required for $xETSOI WRITE : BOOLEAN; -- Write operation $SETSOI MOD_ORB : BOOLEAN; -- ORB (proper) was modified MOD_ACL : BOOLEAN; -- ORB ACL was modified MOD_FOR : BOOLEAN; -- Foreign char was modified KERNEL_SETITM : BOOLEAN; -- Process set itmlist processing in k_mode KERNEL_CLONE_PROFILE : BOOLEAN; -- Call clone_profile OSR in k_mode KERNEL_UPDATE_PROFILE : BOOLEAN; -- Call update_profile OSR in k_mode KERNEL_RUNDOWN : BOOLEAN; -- Call rundown OSR in k_mode KERNEL_CHECK_ACCESS : BOOLEAN; -- Call check_access OSR in k_mode KERNEL_TRANQUILITY : BOOLEAN; -- Call set/clear trauility in K-mode KERNEL_FIXUP_BTIME_ORBS : BOOLEAN; -- Call fixup_btime_orbs OSR in k_mode RELCTX : BOOLEAN; -- Release OSR context SELECT_NAME : BOOLEAN; -- Select object by name SELECT_HANDLE : BOOLEAN; -- Select object by handle EMBED_OBJNAM : BOOLEAN; -- Embed object name in ORB CLUSTER_OBJECT : BOOLEAN; -- Cluster visible object CONTEXT_NAME : BOOLEAN; -- Use object name from context -- for cluster distribution CLUSTER_NOTIFY : BOOLEAN; -- Cluster notification -- (for volumes) TEMPORARY : BOOLEAN; -- Temporary object -- eg. foreign monted disk PERMANENT : BOOLEAN; -- Not temporary NEW_OBJECT : BOOLEAN; -- Any existing profile is stale NO_CREATE : BOOLEAN; -- Don't create a new profile. NO_MAC_DAC : BOOLEAN; -- Concurrent MAC/DAC modifications -- not supported NO_MAC_AUDIT : BOOLEAN; -- Suppress $SET_SECURITY MAC audits MO_MAC_RANGE : BOOLEAN; -- MAC range not supported NO_MAC : BOOLEAN; -- MAC modifications not supported FILLER_1 : UNSIGNED_2; end record; for OSR_FLAG_BITS_TYPE use record ACCESS_CHECKED at 0 range 0 .. 0; MOD_MAC at 0 range 1 .. 1; NO_LOCK_RSN at 0 range 2 .. 2; RUNDOWN at 0 range 3 .. 3; WRITE at 0 range 4 .. 4; MOD_ORB at 0 range 5 .. 5; MOD_ACL at 0 range 6 .. 6; MOD_FOR at 0 range 7 .. 7; KERNEL_SETITM at 1 range 0 .. 0; KERNEL_CLONE_PROFILE at 1 range 1 .. 1; KERNEL_UPDATE_PROFILE at 1 range 2 .. 2; KERNEL_RUNDOWN at 1 range 3 .. 3; KERNEL_CHECK_ACCESS at 1 range 4 .. 4; KERNEL_TRANQUILITY at 1 range 5 .. 5; KERNEL_FIXUP_BTIME_ORBS at 1 range 6 .. 6; RELCTX at 1 range 7 .. 7; SELECT_NAME at 2 range 0 .. 0; SELECT_HANDLE at 2 range 1 .. 1; EMBED_OBJNAM at 2 range 2 .. 2; CLUSTER_OBJECT at 2 range 3 .. 3; CONTEXT_NAME at 2 range 4 .. 4; CLUSTER_NOTIFY at 2 range 5 .. 5; TEMPORARY at 2 range 6 .. 6; PERMANENT at 2 range 7 .. 7; NEW_OBJECT at 3 range 0 .. 0; NO_CREATE at 3 range 1 .. 1; NO_MAC_DAC at 3 range 2 .. 2; NO_MAC_AUDIT at 3 range 3 .. 3; MO_MAC_RANGE at 3 range 4 .. 4; NO_MAC at 3 range 5 .. 5; FILLER_1 at 3 range 6 .. 7; end record; for OSR_FLAG_BITS_TYPE'SIZE use 32; OSR_FLAG_BITS_TYPE_INIT : constant OSR_FLAG_BITS_TYPE := (ACCESS_CHECKED => FALSE, MOD_MAC => FALSE, NO_LOCK_RSN => FALSE, RUNDOWN => FALSE, WRITE => FALSE, MOD_ORB => FALSE, MOD_ACL => FALSE, MOD_FOR => FALSE, KERNEL_SETITM => FALSE, KERNEL_CLONE_PROFILE => FALSE, KERNEL_UPDATE_PROFILE => FALSE, KERNEL_RUNDOWN => FALSE, KERNEL_CHECK_ACCESS => FALSE, KERNEL_TRANQUILITY => FALSE, KERNEL_FIXUP_BTIME_ORBS => FALSE, RELCTX => FALSE, SELECT_NAME => FALSE, SELECT_HANDLE => FALSE, EMBED_OBJNAM => FALSE, CLUSTER_OBJECT => FALSE, CONTEXT_NAME => FALSE, CLUSTER_NOTIFY => FALSE, TEMPORARY => FALSE, PERMANENT => FALSE, NEW_OBJECT => FALSE, NO_CREATE => FALSE, NO_MAC_DAC => FALSE, NO_MAC_AUDIT => FALSE, MO_MAC_RANGE => FALSE, NO_MAC => FALSE, FILLER_1 => 0); type OSR_TYPE is record FLAG_BITS : OSR_FLAG_BITS_TYPE; end record; for OSR_TYPE use record FLAG_BITS at 0 range 0 .. 31; end record; for OSR_TYPE'SIZE use 32; OSR_TYPE_INIT : constant OSR_TYPE := ( FLAG_BITS => OSR_FLAG_BITS_TYPE_INIT); --+ -- The OSR context area is an overlay of the UNC$S/T_OSR_CONTEXT area -- in the universal context area structure ($UNCDEF). If the size of -- this area is larger then UNC$S_OSR_CONTEXT, you must enlarge the -- universal context area defintion. There are ASSUMEs in the ROUTINES -- that allocate the context structure. --- OSRCTX_M_CLS_INIT : constant := 16#00000001#; OSRCTX_M_CLS_TMPNAM : constant := 16#00000002#; OSRCTX_M_LNT_INIT : constant := 16#00000001#; OSRCTX_M_LNT_ACCESS_QUAL : constant := 16#00000002#; OSRCTX_M_DEV_CHAN : constant := 16#00000001#; OSRCTX_M_DEV_TEMPLATE : constant := 16#00000002#; OSRCTX_M_DEV_ALL : constant := 16#00000004#; OSRCTX_M_FIL_DEACCESS : constant := 16#00000001#; OSRCTX_M_VOL_DEACCESS : constant := 16#00000001#; OSRCTX_S_OSR_CTXDEF : constant := 16; -- Old size name - synonym type OSRCTX_CLS_FLAGS_TYPE is -- Processing flags record CLS_INIT : BOOLEAN; -- Initialized CLS_TMPNAM : BOOLEAN; -- Template present FILLER_1 : UNSIGNED_30; end record; for OSRCTX_CLS_FLAGS_TYPE use record CLS_INIT at 0 range 0 .. 0; CLS_TMPNAM at 0 range 1 .. 1; FILLER_1 at 0 range 2 .. 31; end record; for OSRCTX_CLS_FLAGS_TYPE'SIZE use 32; OSRCTX_CLS_FLAGS_TYPE_INIT : constant OSRCTX_CLS_FLAGS_TYPE := (CLS_INIT => FALSE, CLS_TMPNAM => FALSE, FILLER_1 => 0); type OSRCTX_LNT_FLAGS_TYPE is -- Processing flags record LNT_INIT : BOOLEAN; -- Initialized LNT_ACCESS_QUAL : BOOLEAN; -- Access qualifier present FILLER_1 : UNSIGNED_30; end record; for OSRCTX_LNT_FLAGS_TYPE use record LNT_INIT at 0 range 0 .. 0; LNT_ACCESS_QUAL at 0 range 1 .. 1; FILLER_1 at 0 range 2 .. 31; end record; for OSRCTX_LNT_FLAGS_TYPE'SIZE use 32; OSRCTX_LNT_FLAGS_TYPE_INIT : constant OSRCTX_LNT_FLAGS_TYPE := (LNT_INIT => FALSE, LNT_ACCESS_QUAL => FALSE, FILLER_1 => 0); type OSRCTX_LNT_CONTEXT_TYPE is record LNT_FLAGS : OSRCTX_LNT_FLAGS_TYPE; -- Processing flags LNT_ACCESS_MODE : UNSIGNED_BYTE; -- Access mode LNT_RESV_1 : UNSIGNED_BYTE; -- Reserved for future LNT_OBJNAM_LEN : UNSIGNED_WORD; -- LNT name (without access mode) LNT_RESV_2 : UNSIGNED_LONGWORD; -- Reserved for future LNT_RESV_3 : UNSIGNED_LONGWORD; -- Reserved for future end record; for OSRCTX_LNT_CONTEXT_TYPE use record LNT_FLAGS at 0 range 0 .. 31; LNT_ACCESS_MODE at 4 range 0 .. 7; LNT_RESV_1 at 5 range 0 .. 7; LNT_OBJNAM_LEN at 6 range 0 .. 15; LNT_RESV_2 at 8 range 0 .. 31; LNT_RESV_3 at 12 range 0 .. 31; end record; for OSRCTX_LNT_CONTEXT_TYPE'SIZE use 128; OSRCTX_LNT_CONTEXT_TYPE_INIT : constant OSRCTX_LNT_CONTEXT_TYPE := ( LNT_FLAGS => OSRCTX_LNT_FLAGS_TYPE_INIT, LNT_ACCESS_MODE => 0, LNT_RESV_1 => 0, LNT_OBJNAM_LEN => 0, LNT_RESV_2 => 0, LNT_RESV_3 => 0); type OSRCTX_CEF_CONTEXT_TYPE is record CEF_RESV_1 : UNSIGNED_LONGWORD; -- Reserved CEF_RESV_2 : UNSIGNED_LONGWORD; -- CEF_RESV_3 : UNSIGNED_LONGWORD; -- for CEF_RESV_4 : UNSIGNED_WORD; -- CEF_RESV_5 : UNSIGNED_WORD; -- future use end record; for OSRCTX_CEF_CONTEXT_TYPE use record CEF_RESV_1 at 0 range 0 .. 31; CEF_RESV_2 at 4 range 0 .. 31; CEF_RESV_3 at 8 range 0 .. 31; CEF_RESV_4 at 12 range 0 .. 15; CEF_RESV_5 at 14 range 0 .. 15; end record; for OSRCTX_CEF_CONTEXT_TYPE'SIZE use 128; OSRCTX_CEF_CONTEXT_TYPE_INIT : constant OSRCTX_CEF_CONTEXT_TYPE := (CEF_RESV_1 => 0, CEF_RESV_2 => 0, CEF_RESV_3 => 0, CEF_RESV_4 => 0, CEF_RESV_5 => 0); type OSRCTX_DEV_FLAGS_TYPE is -- processing flags record DEV_CHAN : BOOLEAN; -- channel assigned by OSRs DEV_TEMPLATE : BOOLEAN; -- dealing with template device DEV_ALL : BOOLEAN; -- devcie allocated by OSRs FILLER_1 : UNSIGNED_13; end record; for OSRCTX_DEV_FLAGS_TYPE use record DEV_CHAN at 0 range 0 .. 0; DEV_TEMPLATE at 0 range 1 .. 1; DEV_ALL at 0 range 2 .. 2; FILLER_1 at 0 range 3 .. 15; end record; for OSRCTX_DEV_FLAGS_TYPE'SIZE use 16; OSRCTX_DEV_FLAGS_TYPE_INIT : constant OSRCTX_DEV_FLAGS_TYPE := (DEV_CHAN => FALSE, DEV_TEMPLATE => FALSE, DEV_ALL => FALSE, FILLER_1 => 0); type OSRCTX_DEV_CONTEXT_TYPE is record DEV_ORB : ADDRESS; -- Active device ORB DEV_RESV_2 : UNSIGNED_LONGWORD; -- DEV_RESV_3 : UNSIGNED_LONGWORD; -- DEV_CHAN : UNSIGNED_WORD; -- channel # DEV_FLAGS : OSRCTX_DEV_FLAGS_TYPE; -- processing flags end record; for OSRCTX_DEV_CONTEXT_TYPE use record DEV_ORB at 0 range 0 .. 31; DEV_RESV_2 at 4 range 0 .. 31; DEV_RESV_3 at 8 range 0 .. 31; DEV_CHAN at 12 range 0 .. 15; DEV_FLAGS at 14 range 0 .. 15; end record; for OSRCTX_DEV_CONTEXT_TYPE'SIZE use 128; OSRCTX_DEV_CONTEXT_TYPE_INIT : constant OSRCTX_DEV_CONTEXT_TYPE := (DEV_ORB => ADDRESS_ZERO, DEV_RESV_2 => 0, DEV_RESV_3 => 0, DEV_CHAN => 0, DEV_FLAGS => OSRCTX_DEV_FLAGS_TYPE_INIT ); type OSRCTX_FIL_FLAGS_TYPE is -- File context flags record FIL_DEACCESS : BOOLEAN; -- Deaccess file at OSR rundown FILLER_1 : UNSIGNED_15; end record; for OSRCTX_FIL_FLAGS_TYPE use record FIL_DEACCESS at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 15; end record; for OSRCTX_FIL_FLAGS_TYPE'SIZE use 16; OSRCTX_FIL_FLAGS_TYPE_INIT : constant OSRCTX_FIL_FLAGS_TYPE := (FIL_DEACCESS => FALSE, FILLER_1 => 0); type OSRCTX_FIL_CONTEXT_TYPE is record FIL_RESV_1 : UNSIGNED_LONGWORD; -- Reserved FIL_RESV_2 : UNSIGNED_LONGWORD; -- for FIL_RESV_3 : UNSIGNED_LONGWORD; -- future use FIL_CHANNEL : UNSIGNED_WORD; -- FIL_FLAGS : OSRCTX_FIL_FLAGS_TYPE; -- File context flags end record; for OSRCTX_FIL_CONTEXT_TYPE use record FIL_RESV_1 at 0 range 0 .. 31; FIL_RESV_2 at 4 range 0 .. 31; FIL_RESV_3 at 8 range 0 .. 31; FIL_CHANNEL at 12 range 0 .. 15; FIL_FLAGS at 14 range 0 .. 15; end record; for OSRCTX_FIL_CONTEXT_TYPE'SIZE use 128; OSRCTX_FIL_CONTEXT_TYPE_INIT : constant OSRCTX_FIL_CONTEXT_TYPE := (FIL_RESV_1 => 0, FIL_RESV_2 => 0, FIL_RESV_3 => 0, FIL_CHANNEL => 0, FIL_FLAGS => OSRCTX_FIL_FLAGS_TYPE_INIT ); type OSRCTX_QUE_CONTEXT_TYPE is record QUE_RESV_1 : UNSIGNED_LONGWORD; -- Reserved QUE_RESV_2 : UNSIGNED_LONGWORD; -- QUE_RESV_3 : UNSIGNED_LONGWORD; -- for QUE_RESV_4 : UNSIGNED_WORD; -- QUE_RESV_5 : UNSIGNED_WORD; -- future use end record; for OSRCTX_QUE_CONTEXT_TYPE use record QUE_RESV_1 at 0 range 0 .. 31; QUE_RESV_2 at 4 range 0 .. 31; QUE_RESV_3 at 8 range 0 .. 31; QUE_RESV_4 at 12 range 0 .. 15; QUE_RESV_5 at 14 range 0 .. 15; end record; for OSRCTX_QUE_CONTEXT_TYPE'SIZE use 128; OSRCTX_QUE_CONTEXT_TYPE_INIT : constant OSRCTX_QUE_CONTEXT_TYPE := (QUE_RESV_1 => 0, QUE_RESV_2 => 0, QUE_RESV_3 => 0, QUE_RESV_4 => 0, QUE_RESV_5 => 0); type OSRCTX_PRC_CONTEXT_TYPE is record PRC_RESV_1 : UNSIGNED_LONGWORD; -- Reserved PRC_RESV_2 : UNSIGNED_LONGWORD; -- PRC_RESV_3 : UNSIGNED_LONGWORD; -- for PRC_RESV_4 : UNSIGNED_WORD; -- PRC_RESV_5 : UNSIGNED_WORD; -- future use end record; for OSRCTX_PRC_CONTEXT_TYPE use record PRC_RESV_1 at 0 range 0 .. 31; PRC_RESV_2 at 4 range 0 .. 31; PRC_RESV_3 at 8 range 0 .. 31; PRC_RESV_4 at 12 range 0 .. 15; PRC_RESV_5 at 14 range 0 .. 15; end record; for OSRCTX_PRC_CONTEXT_TYPE'SIZE use 128; OSRCTX_PRC_CONTEXT_TYPE_INIT : constant OSRCTX_PRC_CONTEXT_TYPE := (PRC_RESV_1 => 0, PRC_RESV_2 => 0, PRC_RESV_3 => 0, PRC_RESV_4 => 0, PRC_RESV_5 => 0); type OSRCTX_SEC_CONTEXT_TYPE is record SEC_TRANQ_CNT : UNSIGNED_LONGWORD; -- Tranquility count (MAC) SEC_RESV_2 : UNSIGNED_LONGWORD; -- Reserved SEC_RESV_3 : UNSIGNED_LONGWORD; -- for SEC_RESV_4 : UNSIGNED_WORD; -- SEC_RESV_5 : UNSIGNED_WORD; -- future use end record; for OSRCTX_SEC_CONTEXT_TYPE use record SEC_TRANQ_CNT at 0 range 0 .. 31; SEC_RESV_2 at 4 range 0 .. 31; SEC_RESV_3 at 8 range 0 .. 31; SEC_RESV_4 at 12 range 0 .. 15; SEC_RESV_5 at 14 range 0 .. 15; end record; for OSRCTX_SEC_CONTEXT_TYPE'SIZE use 128; OSRCTX_SEC_CONTEXT_TYPE_INIT : constant OSRCTX_SEC_CONTEXT_TYPE := (SEC_TRANQ_CNT => 0, SEC_RESV_2 => 0, SEC_RESV_3 => 0, SEC_RESV_4 => 0, SEC_RESV_5 => 0); type OSRCTX_VOL_FLAGS_TYPE is -- Volume context flags record VOL_DEACCESS : BOOLEAN; -- Deassign channel at OSR rundown FILLER_1 : UNSIGNED_15; end record; for OSRCTX_VOL_FLAGS_TYPE use record VOL_DEACCESS at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 15; end record; for OSRCTX_VOL_FLAGS_TYPE'SIZE use 16; OSRCTX_VOL_FLAGS_TYPE_INIT : constant OSRCTX_VOL_FLAGS_TYPE := (VOL_DEACCESS => FALSE, FILLER_1 => 0); type OSRCTX_VOL_CONTEXT_TYPE is record VOL_RESV_1 : UNSIGNED_LONGWORD; -- Reserved VOL_RESV_2 : UNSIGNED_LONGWORD; -- for VOL_RESV_3 : UNSIGNED_LONGWORD; -- future use VOL_CHANNEL : UNSIGNED_WORD; -- VOL_FLAGS : OSRCTX_VOL_FLAGS_TYPE; -- Volume context flags end record; for OSRCTX_VOL_CONTEXT_TYPE use record VOL_RESV_1 at 0 range 0 .. 31; VOL_RESV_2 at 4 range 0 .. 31; VOL_RESV_3 at 8 range 0 .. 31; VOL_CHANNEL at 12 range 0 .. 15; VOL_FLAGS at 14 range 0 .. 15; end record; for OSRCTX_VOL_CONTEXT_TYPE'SIZE use 128; OSRCTX_VOL_CONTEXT_TYPE_INIT : constant OSRCTX_VOL_CONTEXT_TYPE := (VOL_RESV_1 => 0, VOL_RESV_2 => 0, VOL_RESV_3 => 0, VOL_CHANNEL => 0, VOL_FLAGS => OSRCTX_VOL_FLAGS_TYPE_INIT ); type OSRCTX_RSDM_CONTEXT_TYPE is record RSDM_DOMAIN : UNSIGNED_LONGWORD; -- Domain number RSDM_LOCKID : UNSIGNED_LONGWORD; -- Tranquility lock id (MAC) RSDM_RESV_3 : UNSIGNED_LONGWORD; -- Reserved RSDM_RESV_4 : UNSIGNED_WORD; -- for RSDM_RESV_5 : UNSIGNED_WORD; -- future use end record; for OSRCTX_RSDM_CONTEXT_TYPE use record RSDM_DOMAIN at 0 range 0 .. 31; RSDM_LOCKID at 4 range 0 .. 31; RSDM_RESV_3 at 8 range 0 .. 31; RSDM_RESV_4 at 12 range 0 .. 15; RSDM_RESV_5 at 14 range 0 .. 15; end record; for OSRCTX_RSDM_CONTEXT_TYPE'SIZE use 128; OSRCTX_RSDM_CONTEXT_TYPE_INIT : constant OSRCTX_RSDM_CONTEXT_TYPE := (RSDM_DOMAIN => 0, RSDM_LOCKID => 0, RSDM_RESV_3 => 0, RSDM_RESV_4 => 0, RSDM_RESV_5 => 0); type OSRCTX_OBJECT_OVERLAY_TYPE is record CLS_OCB : ADDRESS; -- Original OCB CLS_FLAGS : OSRCTX_CLS_FLAGS_TYPE; -- Processing flags CLS_TMPNAM_LENGTH : UNSIGNED_LONGWORD; -- Template name length CLS_TMPNAM : UNSIGNED_LONGWORD; -- Template name ----Component(s) below are defined as comments since they ----overlap other fields ---- ----LNT_CONTEXT : OSRCTX_LNT_CONTEXT_TYPE; ----CEF_CONTEXT : OSRCTX_CEF_CONTEXT_TYPE; ----DEV_CONTEXT : OSRCTX_DEV_CONTEXT_TYPE; ----FIL_CONTEXT : OSRCTX_FIL_CONTEXT_TYPE; ----QUE_CONTEXT : OSRCTX_QUE_CONTEXT_TYPE; ----PRC_CONTEXT : OSRCTX_PRC_CONTEXT_TYPE; ----SEC_CONTEXT : OSRCTX_SEC_CONTEXT_TYPE; ----VOL_CONTEXT : OSRCTX_VOL_CONTEXT_TYPE; ----RSDM_CONTEXT : OSRCTX_RSDM_CONTEXT_TYPE; end record; for OSRCTX_OBJECT_OVERLAY_TYPE use record CLS_OCB at 0 range 0 .. 31; CLS_FLAGS at 4 range 0 .. 31; CLS_TMPNAM_LENGTH at 8 range 0 .. 31; CLS_TMPNAM at 12 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----LNT_CONTEXT at 0 range 0 .. 127; ----CEF_CONTEXT at 0 range 0 .. 127; ----DEV_CONTEXT at 0 range 0 .. 127; ----FIL_CONTEXT at 0 range 0 .. 127; ----QUE_CONTEXT at 0 range 0 .. 127; ----PRC_CONTEXT at 0 range 0 .. 127; ----SEC_CONTEXT at 0 range 0 .. 127; ----VOL_CONTEXT at 0 range 0 .. 127; ----RSDM_CONTEXT at 0 range 0 .. 127; end record; for OSRCTX_OBJECT_OVERLAY_TYPE'SIZE use 128; OSRCTX_OBJECT_OVERLAY_TYPE_INIT : constant OSRCTX_OBJECT_OVERLAY_TYPE := (CLS_OCB => ADDRESS_ZERO, CLS_FLAGS => OSRCTX_CLS_FLAGS_TYPE_INIT, CLS_TMPNAM_LENGTH => 0, CLS_TMPNAM => 0); type OSRCTX_OSR_CTX_TYPE is record OBJECT_OVERLAY : OSRCTX_OBJECT_OVERLAY_TYPE; end record; for OSRCTX_OSR_CTX_TYPE use record OBJECT_OVERLAY at 0 range 0 .. 127; end record; for OSRCTX_OSR_CTX_TYPE'SIZE use 128; OSRCTX_OSR_CTX_TYPE_INIT : constant OSRCTX_OSR_CTX_TYPE := ( OBJECT_OVERLAY => OSRCTX_OBJECT_OVERLAY_TYPE_INIT ); end OSRDEF;