--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:31 by OpenVMS SDL EV3-3 -- Source: 18-JUL-1997 11:01:56 $1$DGA8085:[LIB_ADA.LIS]NSAIFPDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package NSAIFPDEF is -- module $NSAIFPDEF NSAP_M_MANDATORY : constant := 16#00000001#; NSAP_M_PRIVMASK : constant := 16#00000002#; NSAP_M_PROCPRIV : constant := 16#00000004#; NSAP_M_AUTHPRIV : constant := 16#00000008#; NSAP_M_AUDIT : constant := 16#00000010#; NSAP_M_ALTPRIV : constant := 16#00000020#; NSAP_M_IDENTIFIER : constant := 16#00000040#; NSAP_M_INTERNAL : constant := 16#00000080#; NSAP_M_IMAGEID : constant := 16#00000100#; NSAP_M_ONEBIT : constant := 16#00000200#; NSAP_M_NOPROBE : constant := 16#00000400#; NSAP_M_FLUSH : constant := 16#00000800#; NSAP_M_SERVER : constant := 16#00001000#; NSAP_M_NOFAILAUD : constant := 16#00002000#; NSAP_M_NOSUCCAUD : constant := 16#00004000#; NSAP_M_KTBVALID : constant := 16#00008000#; NSAP_M_PSBVALID : constant := 16#00010000#; NSAP_K_LENGTH : constant := 28; -- size of input potion of control block NSAP_S_NSAIFPDEF : constant := 28; type NSAP_FLAGS_TYPE is record MANDATORY : BOOLEAN; -- force privilege audit PRIVMASK : BOOLEAN; -- caller supplied address of privilege mask PROCPRIV : BOOLEAN; -- check permanent privilege mask AUTHPRIV : BOOLEAN; -- check authorized privilege mask AUDIT : BOOLEAN; -- privilege audit required ALTPRIV : BOOLEAN; -- check alternate mask supplied by caller IDENTIFIER : BOOLEAN; -- check identifier instead of privilege INTERNAL : BOOLEAN; -- privilege check being performed on behalf of TCB IMAGEID : BOOLEAN; -- identifier was located in image rights list segment ONEBIT : BOOLEAN; -- privilege mask contained only a single bit NOPROBE : BOOLEAN; -- do not probe item list FLUSH : BOOLEAN; -- force audit server buffer flush SERVER : BOOLEAN; -- audit from trusted (TCB) server NOFAILAUD : BOOLEAN; -- do not audit failures NOSUCCAUD : BOOLEAN; -- do not audit success KTBVALID : BOOLEAN; -- KTB address in R4 is accurate -- (reflects the applicable KTB when PCB) PSBVALID : BOOLEAN; -- PSB referenced by KTB is current -- (no need to perform a lazy assume or import ARB) FILLER_1 : UNSIGNED_15; end record; for NSAP_FLAGS_TYPE use record MANDATORY at 0 range 0 .. 0; PRIVMASK at 0 range 1 .. 1; PROCPRIV at 0 range 2 .. 2; AUTHPRIV at 0 range 3 .. 3; AUDIT at 0 range 4 .. 4; ALTPRIV at 0 range 5 .. 5; IDENTIFIER at 0 range 6 .. 6; INTERNAL at 0 range 7 .. 7; IMAGEID at 1 range 0 .. 0; ONEBIT at 1 range 1 .. 1; NOPROBE at 1 range 2 .. 2; FLUSH at 1 range 3 .. 3; SERVER at 1 range 4 .. 4; NOFAILAUD at 1 range 5 .. 5; NOSUCCAUD at 1 range 6 .. 6; KTBVALID at 1 range 7 .. 7; PSBVALID at 2 range 0 .. 0; FILLER_1 at 2 range 1 .. 15; end record; for NSAP_FLAGS_TYPE'SIZE use 32; NSAP_FLAGS_TYPE_INIT : constant NSAP_FLAGS_TYPE := (MANDATORY => FALSE, PRIVMASK => FALSE, PROCPRIV => FALSE, AUTHPRIV => FALSE, AUDIT => FALSE, ALTPRIV => FALSE, IDENTIFIER => FALSE, INTERNAL => FALSE, IMAGEID => FALSE, ONEBIT => FALSE, NOPROBE => FALSE, FLUSH => FALSE, SERVER => FALSE, NOFAILAUD => FALSE, NOSUCCAUD => FALSE, KTBVALID => FALSE, PSBVALID => FALSE, FILLER_1 => 0); type NSAP_ID_OVER_TYPE is record IDENTIFIER : UNSIGNED_LONGWORD; -- identifier to check end record; for NSAP_ID_OVER_TYPE use record IDENTIFIER at 0 range 0 .. 31; end record; for NSAP_ID_OVER_TYPE'SIZE use 32; NSAP_ID_OVER_TYPE_INIT : constant NSAP_ID_OVER_TYPE := (IDENTIFIER => 0); type NSAP_NSAIFP_TYPE is record FLAGS : NSAP_FLAGS_TYPE; AUDIT_MASK : UNSIGNED_LONGWORD; -- audit mask (NSA$W_FLAGS) AUDIT_LIST : ADDRESS; -- address of optional audit message itemlist MESSAGE : UNSIGNED_LONGWORD; -- privilege audit message code ($NSA) ----Component(s) below are defined as comments since they ----overlap other fields ---- ----AUDSTS : UNSIGNED_LONGWORD; -- privilege audit return status ALTPRIV : UNSIGNED_QUADWORD; -- alternate privilege mask to check ----Component(s) below are defined as comments since they ----overlap other fields ---- ----PRIV : UNSIGNED_QUADWORD; -- mask of privileges that were checked (success) ----AUDPRIV : UNSIGNED_QUADWORD; -- mask of privileges to audit (success/failure) ----FAILPRIV : UNSIGNED_QUADWORD; -- mask of privileges that caller lacked (failure) ----ID_OVER : NSAP_ID_OVER_TYPE; REPLY_MAILBOX : ADDRESS; -- reply mailbox descriptor address end record; for NSAP_NSAIFP_TYPE use record FLAGS at 0 range 0 .. 31; AUDIT_MASK at 4 range 0 .. 31; AUDIT_LIST at 8 range 0 .. 31; MESSAGE at 12 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----AUDSTS at 12 range 0 .. 31; ALTPRIV at 16 range 0 .. 63; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----PRIV at 16 range 0 .. 63; ----AUDPRIV at 16 range 0 .. 63; ----FAILPRIV at 16 range 0 .. 63; ----ID_OVER at 16 range 0 .. 31; REPLY_MAILBOX at 24 range 0 .. 31; end record; for NSAP_NSAIFP_TYPE'SIZE use 224; NSAP_NSAIFP_TYPE_INIT : constant NSAP_NSAIFP_TYPE := ( FLAGS => NSAP_FLAGS_TYPE_INIT, AUDIT_MASK => 0, AUDIT_LIST => ADDRESS_ZERO, MESSAGE => 0, ALTPRIV => (0, 0), REPLY_MAILBOX => ADDRESS_ZERO); end NSAIFPDEF;