--******************************************************************************************************************** -- Created: 30-Mar-2010 17:32:37 by OpenVMS SDL EV3-3 -- Source: 22-NOV-1993 09:46:27 $1$DGA7274:[LIB_ADA.LIS]CHPRETDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package CHPRETDEF is -- module $CHPRETDEF --+ -- -- CHeck Protection ConTroL RETurn argument block. This block contains -- the information needed to return arguments from the protection check. -- --- CHPRET_M_ACMODE : constant := 16#00000001#; CHPRET_M_MAC : constant := 16#00000002#; CHPRET_M_DAC : constant := 16#00000004#; CHPRET_M_MATCHED_ACE : constant := 16#00000008#; CHPRET_M_SOGW : constant := 16#00000010#; CHPRET_M_ACL_KEYID : constant := 16#00000020#; CHPRET_M_IVBUFLEN : constant := 16#00000040#; CHPRET_K_LENGTH : constant := 44; CHPRET_C_LENGTH : constant := 44; type CHPRET_PROGRESS_TYPE is -- Protection check progress fl record ACMODE : BOOLEAN; -- Access mode check failed MAC : BOOLEAN; -- MAC check failed DAC : BOOLEAN; -- DAC check failed MATCHED_ACE : BOOLEAN; -- matching ACE was located SOGW : BOOLEAN; -- SOGW check was performed ACL_KEYID : BOOLEAN; -- An identifier ACE was found in the ACL IVBUFLEN : BOOLEAN; -- CHPRET info for auditing is incomplete FILLER_1 : UNSIGNED_25; end record; for CHPRET_PROGRESS_TYPE use record ACMODE at 0 range 0 .. 0; MAC at 0 range 1 .. 1; DAC at 0 range 2 .. 2; MATCHED_ACE at 0 range 3 .. 3; SOGW at 0 range 4 .. 4; ACL_KEYID at 0 range 5 .. 5; IVBUFLEN at 0 range 6 .. 6; FILLER_1 at 0 range 7 .. 31; end record; for CHPRET_PROGRESS_TYPE'SIZE use 32; CHPRET_PROGRESS_TYPE_INIT : constant CHPRET_PROGRESS_TYPE := (ACMODE => FALSE, MAC => FALSE, DAC => FALSE, MATCHED_ACE => FALSE, SOGW => FALSE, ACL_KEYID => FALSE, IVBUFLEN => FALSE, FILLER_1 => 0); type CHPRET_TYPE is record AUDITLEN : UNSIGNED_LONGWORD; -- Size of the audit ACE buffer AUDIT : ADDRESS; -- Address of the audit ACE buffer AUDITRET : ADDRESS; -- Address of word to get ACE length ALARMLEN : UNSIGNED_LONGWORD; -- Size of the alarm ACE buffer ALARM : ADDRESS; -- Address of the alarm ACE buffer ALARMRET : ADDRESS; -- Address of word to get ACE length MATCHED_ACELEN : UNSIGNED_LONGWORD; -- Size of the matched ACE buffer MATCHED_ACE : ADDRESS; -- Address of the matched ACE buffer MATCHED_ACERET : ADDRESS; -- Address of word to get ACE length PRIVS_USED : ADDRESS; -- Address of longword to get privileges used PROGRESS : CHPRET_PROGRESS_TYPE; -- Protection check progress fl end record; for CHPRET_TYPE use record AUDITLEN at 0 range 0 .. 31; AUDIT at 4 range 0 .. 31; AUDITRET at 8 range 0 .. 31; ALARMLEN at 12 range 0 .. 31; ALARM at 16 range 0 .. 31; ALARMRET at 20 range 0 .. 31; MATCHED_ACELEN at 24 range 0 .. 31; MATCHED_ACE at 28 range 0 .. 31; MATCHED_ACERET at 32 range 0 .. 31; PRIVS_USED at 36 range 0 .. 31; PROGRESS at 40 range 0 .. 31; end record; for CHPRET_TYPE'SIZE use 352; CHPRET_TYPE_INIT : constant CHPRET_TYPE := (AUDITLEN => 0, AUDIT => ADDRESS_ZERO, AUDITRET => ADDRESS_ZERO, ALARMLEN => 0, ALARM => ADDRESS_ZERO, ALARMRET => ADDRESS_ZERO, MATCHED_ACELEN => 0, MATCHED_ACE => ADDRESS_ZERO, MATCHED_ACERET => ADDRESS_ZERO, PRIVS_USED => ADDRESS_ZERO, PROGRESS => CHPRET_PROGRESS_TYPE_INIT ); end CHPRETDEF;