--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:18 by OpenVMS SDL EV3-3 -- Source: 20-DEC-1996 06:37:06 $1$DGA8085:[LIB_ADA.LIS]CHPCTLDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package CHPCTLDEF is -- module $CHPCTLDEF -- -- CHeck Protection ConTroL block definition. This block contains the -- information concerning the type of access check being made. -- CHPCTL_M_READ : constant := 16#00000001#; CHPCTL_M_WRITE : constant := 16#00000002#; CHPCTL_M_USEREADALL : constant := 16#00000004#; CHPCTL_M_NOAUDIT : constant := 16#00000008#; CHPCTL_M_NOFAILAUD : constant := 16#00000010#; CHPCTL_M_NOSUCCAUD : constant := 16#00000020#; CHPCTL_M_DELETE : constant := 16#00000040#; CHPCTL_M_MANDATORY : constant := 16#00000080#; CHPCTL_M_FLUSH : constant := 16#00000100#; CHPCTL_M_CREATE : constant := 16#00000200#; CHPCTL_M_INTERNAL : constant := 16#00000400#; CHPCTL_M_SERVER : constant := 16#00000800#; CHPCTL_K_LENGTH : constant := 32; CHPCTL_C_LENGTH : constant := 32; type CHPCTL_FLAGS_TYPE is -- control flags record READ : BOOLEAN; -- READ access WRITE : BOOLEAN; -- WRITE access USEREADALL : BOOLEAN; -- try for READ access via READALL NOAUDIT : BOOLEAN; -- do not perform any auditing NOFAILAUD : BOOLEAN; -- do not perform failed access audit NOSUCCAUD : BOOLEAN; -- do not perform successful access audit DELETE : BOOLEAN; -- perform audit as DELETE event MANDATORY : BOOLEAN; -- perform mandatory audit FLUSH : BOOLEAN; -- force buffer flush in audit server CREATE : BOOLEAN; -- perform audit as CREATE event INTERNAL : BOOLEAN; -- audit on behalf of VMS TCB SERVER : BOOLEAN; -- audit originates in TCB server process FILLER_1 : UNSIGNED_20; end record; for CHPCTL_FLAGS_TYPE use record READ at 0 range 0 .. 0; WRITE at 0 range 1 .. 1; USEREADALL at 0 range 2 .. 2; NOAUDIT at 0 range 3 .. 3; NOFAILAUD at 0 range 4 .. 4; NOSUCCAUD at 0 range 5 .. 5; DELETE at 0 range 6 .. 6; MANDATORY at 0 range 7 .. 7; FLUSH at 1 range 0 .. 0; CREATE at 1 range 1 .. 1; INTERNAL at 1 range 2 .. 2; SERVER at 1 range 3 .. 3; FILLER_1 at 1 range 4 .. 23; end record; for CHPCTL_FLAGS_TYPE'SIZE use 32; CHPCTL_FLAGS_TYPE_INIT : constant CHPCTL_FLAGS_TYPE := (READ => FALSE, WRITE => FALSE, USEREADALL => FALSE, NOAUDIT => FALSE, NOFAILAUD => FALSE, NOSUCCAUD => FALSE, DELETE => FALSE, MANDATORY => FALSE, FLUSH => FALSE, CREATE => FALSE, INTERNAL => FALSE, SERVER => FALSE, FILLER_1 => 0); type CHPCTL_TYPE is record ACCES : UNSIGNED_LONGWORD; -- type of access desired FLAGS : CHPCTL_FLAGS_TYPE; -- control flags MODE : UNSIGNED_LONGWORD; -- access mode of request AUDIT_LIST : ADDRESS; -- address of associated auditing item list DEACCESS_KEY : INTEGER_32; -- deaccess audit object handle MESSAGE : UNSIGNED_LONGWORD; -- associated auditing message code ARB : ADDRESS; -- corresponding ARB ----Component(s) below are defined as comments since they ----overlap other fields ---- ----PSB : ADDRESS; -- corresponding PSB ORB : ADDRESS; -- corresponding ORB end record; for CHPCTL_TYPE use record ACCES at 0 range 0 .. 31; FLAGS at 4 range 0 .. 31; MODE at 8 range 0 .. 31; AUDIT_LIST at 12 range 0 .. 31; DEACCESS_KEY at 16 range 0 .. 31; MESSAGE at 20 range 0 .. 31; ARB at 24 range 0 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----PSB at 24 range 0 .. 31; ORB at 28 range 0 .. 31; end record; for CHPCTL_TYPE'SIZE use 256; CHPCTL_TYPE_INIT : constant CHPCTL_TYPE := (ACCES => 0, FLAGS => CHPCTL_FLAGS_TYPE_INIT, MODE => 0, AUDIT_LIST => ADDRESS_ZERO, DEACCESS_KEY => 0, MESSAGE => 0, ARB => ADDRESS_ZERO, ORB => ADDRESS_ZERO); end CHPCTLDEF;