--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:31 by OpenVMS SDL EV3-3 -- Source: 24-FEB-1997 09:42:02 $1$DGA8085:[LIB_ADA.LIS]NSABDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package NSABDEF is -- module $NSABDEF -- -- Define the layout of the Non-discretionary Security Audit Block. -- -- The NSAB is the structure which is passed to the internal auditing entry -- point (NSA$AUDIT_EVENT) and contains a list of audit packets along with -- a couple of flags. -- NSAB_M_NONPAGED : constant := 16#00000001#; NSAB_M_NUKENSAB : constant := 16#00000002#; NSAB_C_HDR_LENGTH : constant := 72; NSAB_K_HDR_LENGTH : constant := 72; NSAB_S_NSABDEF : constant := 72; type NSAB_FLAGS_TYPE is -- miscellaneous flags record NONPAGED : BOOLEAN; -- message entry is non-paged pool NUKENSAB : BOOLEAN; -- force NSAB deallocation FILLER_1 : UNSIGNED_30; end record; for NSAB_FLAGS_TYPE use record NONPAGED at 0 range 0 .. 0; NUKENSAB at 0 range 1 .. 1; FILLER_1 at 0 range 2 .. 31; end record; for NSAB_FLAGS_TYPE'SIZE use 32; NSAB_FLAGS_TYPE_INIT : constant NSAB_FLAGS_TYPE := (NONPAGED => FALSE, NUKENSAB => FALSE, FILLER_1 => 0); type NSAB_TYPE is record FLINK : ADDRESS; -- FLINK BLINK : ADDRESS; -- BLINK SIZE : UNSIGNED_WORD; -- size of NSAB buffer TYP : UNSIGNED_BYTE; -- type of structure (DYN$C_NSAB) SUBTYP : UNSIGNED_BYTE; -- subtype field (not used) FILLER_1 : UNSIGNED_LONGWORD; -- Keep offsets compatible with previous -- incarnations FLAGS : NSAB_FLAGS_TYPE; -- miscellaneous flags SUPPLIED : UNSIGNED_LONGWORD; -- supplied packet mask BASEADDR : ADDRESS; -- address of NSAB to deallocate AUDIT_BLOCK : ADDRESS; -- address of audit buffer ACB : UNSIGNED_BYTE_ARRAY (1 .. 36); -- ACB used to wake audit server SENDER_EPID : UNSIGNED_LONGWORD; -- sender's EPID end record; for NSAB_TYPE use record FLINK at 0 range 0 .. 31; BLINK at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; TYP at 10 range 0 .. 7; SUBTYP at 11 range 0 .. 7; FILLER_1 at 12 range 0 .. 31; FLAGS at 16 range 0 .. 31; SUPPLIED at 20 range 0 .. 31; BASEADDR at 24 range 0 .. 31; AUDIT_BLOCK at 28 range 0 .. 31; ACB at 32 range 0 .. 287; SENDER_EPID at 68 range 0 .. 31; end record; for NSAB_TYPE'SIZE use 576; NSAB_TYPE_INIT : constant NSAB_TYPE := (FLINK => ADDRESS_ZERO, BLINK => ADDRESS_ZERO, SIZE => 0, TYP => 0, SUBTYP => 0, FILLER_1 => 0, FLAGS => NSAB_FLAGS_TYPE_INIT, SUPPLIED => 0, BASEADDR => ADDRESS_ZERO, AUDIT_BLOCK => ADDRESS_ZERO, ACB => (others => 0), SENDER_EPID => 0); end NSABDEF;