--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:31 by OpenVMS SDL EV3-3 -- Source: 18-MAY-1993 16:08:22 $1$DGA8085:[LIB_ADA.LIS]NSASDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package NSASDEF is -- module $NSASDEF -- Define the layout of the structure returned by NSA$SIZE_NSAB. NSAS_M_NOALARM : constant := 16#00000001#; NSAS_M_NOAUDIT : constant := 16#00000002#; NSAS_M_NOPROBE : constant := 16#00000004#; NSAS_M_PRIVS_SUPPLIED : constant := 16#00000008#; NSAS_K_MAX_JOURNALS : constant := 1; -- maximum number of alarm or audit journals NSAS_K_LENGTH : constant := 76; -- define length of structure NSAS_S_NSASDEF : constant := 76; -- Old size name - synonym type NSAS_EVENT_TYPE is -- event type/subtype as longword record EVENT_TYPE : UNSIGNED_WORD; -- event type EVENT_SUBTYPE : UNSIGNED_WORD; -- event subtype end record; for NSAS_EVENT_TYPE use record EVENT_TYPE at 0 range 0 .. 15; EVENT_SUBTYPE at 2 range 0 .. 15; end record; for NSAS_EVENT_TYPE'SIZE use 32; NSAS_EVENT_TYPE_INIT : constant NSAS_EVENT_TYPE := (EVENT_TYPE => 0, EVENT_SUBTYPE => 0); type NSAS_FLAGS_TYPE is -- flags record NOALARM : BOOLEAN; -- do not copy alarm packets NOAUDIT : BOOLEAN; -- do not copy audit packets NOPROBE : BOOLEAN; -- do not probe item list PRIVS_SUPPLIED : BOOLEAN; -- did the caller supply a priv mask -- or identifier list? FILLER_1 : UNSIGNED_28; end record; for NSAS_FLAGS_TYPE use record NOALARM at 0 range 0 .. 0; NOAUDIT at 0 range 1 .. 1; NOPROBE at 0 range 2 .. 2; PRIVS_SUPPLIED at 0 range 3 .. 3; FILLER_1 at 0 range 4 .. 31; end record; for NSAS_FLAGS_TYPE'SIZE use 32; NSAS_FLAGS_TYPE_INIT : constant NSAS_FLAGS_TYPE := (NOALARM => FALSE, NOAUDIT => FALSE, NOPROBE => FALSE, PRIVS_SUPPLIED => FALSE, FILLER_1 => 0); type NSAS_OBJECT_CLASS_TYPE is -- object class name descriptor record CLASS_LENGTH : UNSIGNED_WORD; -- object class name length FILLER_1 : UNSIGNED_WORD; CLASS_ADDR : ADDRESS; -- object class name buffer address end record; for NSAS_OBJECT_CLASS_TYPE use record CLASS_LENGTH at 0 range 0 .. 15; FILLER_1 at 2 range 0 .. 15; CLASS_ADDR at 4 range 0 .. 31; end record; for NSAS_OBJECT_CLASS_TYPE'SIZE use 64; NSAS_OBJECT_CLASS_TYPE_INIT : constant NSAS_OBJECT_CLASS_TYPE := (CLASS_LENGTH => 0, FILLER_1 => 0, CLASS_ADDR => ADDRESS_ZERO); type NSAS_TYPE is record SIZE : UNSIGNED_LONGWORD; -- size of required packet list SUPPLIED : UNSIGNED_LONGWORD; -- supplied packet mask EVENT : NSAS_EVENT_TYPE; -- event type/subtype as longword FACILITY : UNSIGNED_LONGWORD; -- event facility FLAGS : NSAS_FLAGS_TYPE; -- flags ACCESS_DESIRED : UNSIGNED_LONGWORD; -- actual access desired PRIVS_USED : UNSIGNED_QUADWORD; -- actual privs used (as quadword) ----Component(s) below are defined as comments since they ----overlap other fields ---- ----PRIVS_USED : UNSIGNED_LONGWORD; -- actual privs used (as longword) ALARM_COUNT : UNSIGNED_LONGWORD; -- number of alarm journals present AUDIT_COUNT : UNSIGNED_LONGWORD; -- number of audit journals present MIN_CLASS_ADDR : ADDRESS; -- address of min. class mask MAX_CLASS_ADDR : ADDRESS; -- address of max. class mask OBJECT_CLASS : NSAS_OBJECT_CLASS_TYPE; -- object class name descriptor ALARM_LIST : UNSIGNED_QUADWORD_ARRAY (1 .. 1); -- array of alarm journals descriptors AUDIT_LIST : UNSIGNED_QUADWORD_ARRAY (1 .. 1); -- array of audit journals descriptors FINAL_STATUS : UNSIGNED_LONGWORD; -- actual final status end record; for NSAS_TYPE use record SIZE at 0 range 0 .. 31; SUPPLIED at 4 range 0 .. 31; EVENT at 8 range 0 .. 31; FACILITY at 12 range 0 .. 31; FLAGS at 16 range 0 .. 31; ACCESS_DESIRED at 20 range 0 .. 31; PRIVS_USED at 24 range 0 .. 63; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----PRIVS_USED at 24 range 0 .. 31; ALARM_COUNT at 32 range 0 .. 31; AUDIT_COUNT at 36 range 0 .. 31; MIN_CLASS_ADDR at 40 range 0 .. 31; MAX_CLASS_ADDR at 44 range 0 .. 31; OBJECT_CLASS at 48 range 0 .. 63; ALARM_LIST at 56 range 0 .. 63; AUDIT_LIST at 64 range 0 .. 63; FINAL_STATUS at 72 range 0 .. 31; end record; for NSAS_TYPE'SIZE use 608; NSAS_TYPE_INIT : constant NSAS_TYPE := (SIZE => 0, SUPPLIED => 0, EVENT => NSAS_EVENT_TYPE_INIT, FACILITY => 0, FLAGS => NSAS_FLAGS_TYPE_INIT, ACCESS_DESIRED => 0, PRIVS_USED => (0, 0), ALARM_COUNT => 0, AUDIT_COUNT => 0, MIN_CLASS_ADDR => ADDRESS_ZERO, MAX_CLASS_ADDR => ADDRESS_ZERO, OBJECT_CLASS => NSAS_OBJECT_CLASS_TYPE_INIT, ALARM_LIST => (others => (0, 0)), AUDIT_LIST => (others => (0, 0)), FINAL_STATUS => 0); end NSASDEF;