--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:31 by OpenVMS SDL EV3-3 -- Source: 26-JUL-2000 12:42:51 $1$DGA8085:[LIB_ADA.LIS]OCBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package OCBDEF is -- module $OCBDEF --+ -- OCB - Object Class Block -- -- This structures contains information about a security Object -- Class Block. -- --- OCB_M_ACC_BITS_ALLOC : constant := 16#00000001#; OCB_M_IMP_GRP_NAMING : constant := 16#00000002#; OCB_M_CREATE : constant := 16#00000004#; OCB_M_DEACCESS : constant := 16#00000008#; OCB_M_DELETE : constant := 16#00000010#; OCB_K_LENGTH : constant := 203; -- Length of structure OCB_S_OCBDEF : constant := 203; -- Old size name - synonym type OCB_FLAGS_TYPE is -- Processing flags record ACC_BITS_ALLOC : BOOLEAN; -- Bitname XLATE allocated IMP_GRP_NAMING : BOOLEAN; -- Implicit group namespace CREATE : BOOLEAN; -- Object class supports creation auditing DEACCESS : BOOLEAN; -- Object class supports deaccess auditing DELETE : BOOLEAN; -- Object class supports deletion auditing (devices) FILLER_1 : UNSIGNED_27; end record; for OCB_FLAGS_TYPE use record ACC_BITS_ALLOC at 0 range 0 .. 0; IMP_GRP_NAMING at 0 range 1 .. 1; CREATE at 0 range 2 .. 2; DEACCESS at 0 range 3 .. 3; DELETE at 0 range 4 .. 4; FILLER_1 at 0 range 5 .. 31; end record; for OCB_FLAGS_TYPE'SIZE use 32; OCB_FLAGS_TYPE_INIT : constant OCB_FLAGS_TYPE := (ACC_BITS_ALLOC => FALSE, IMP_GRP_NAMING => FALSE, CREATE => FALSE, DEACCESS => FALSE, DELETE => FALSE, FILLER_1 => 0); type OCB_TYPE is record FLINK : ADDRESS; -- Forward link BLINK : ADDRESS; -- Backward link SIZE : UNSIGNED_WORD; -- Allocation size TYP : UNSIGNED_BYTE; -- Structure type SUBTYP : UNSIGNED_BYTE; -- Subtype FILLER_1 : UNSIGNED_QUADWORD; -- TYPE/SUBTYPE longwords from X-1 FLAGS : OCB_FLAGS_TYPE; -- Processing flags OBJECT_TYPE : UNSIGNED_LONGWORD; -- Object type value CLASS_ORB : UNSIGNED_LONGWORD; -- Class rights block DEFAULT_ORB : UNSIGNED_LONGWORD; -- Default rights block ACCESS_BITNAMES : ADDRESS; -- Ptr to access bitnames SUPPORT_RTNS : ADDRESS; -- Ptr to support rtns dispatch ACC_AUDITS : ADDRESS; -- Ptr to access audits ACC_ALARMS : ADDRESS; -- Ptr to access alarms ACCESS_MODES : UNSIGNED_LONGWORD; -- Mask of valid access modes FILLER_2 : UNSIGNED_LONGWORD; -- Reserved for future use ACC_BITNAME_SIZE : UNSIGNED_LONGWORD; -- Size of pool for bitname table ACC_BITNAME_LENGTH : UNSIGNED_LONGWORD; -- Length of access bitname table -- ACCESS_AUDITS : STRING(1 .. 48); -- Access audits ACCESS_ALARMS : STRING(1 .. 48); -- Access alarms -- NAME_LENGTH : UNSIGNED_LONGWORD; -- Length of class name FILLER_3 : UNSIGNED_LONGWORD; -- to quadword CLASS_PROT_ALARMS : ADDRESS; -- Ptr to class alarms CLASS_PROT_AUDITS : ADDRESS; -- Ptr to class audits NAME : STRING(1 .. 23); -- Class name string end record; for OCB_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 .. 63; FLAGS at 20 range 0 .. 31; OBJECT_TYPE at 24 range 0 .. 31; CLASS_ORB at 28 range 0 .. 31; DEFAULT_ORB at 32 range 0 .. 31; ACCESS_BITNAMES at 36 range 0 .. 31; SUPPORT_RTNS at 40 range 0 .. 31; ACC_AUDITS at 44 range 0 .. 31; ACC_ALARMS at 48 range 0 .. 31; ACCESS_MODES at 52 range 0 .. 31; FILLER_2 at 56 range 0 .. 31; ACC_BITNAME_SIZE at 60 range 0 .. 31; ACC_BITNAME_LENGTH at 64 range 0 .. 31; ACCESS_AUDITS at 68 range 0 .. 383; ACCESS_ALARMS at 116 range 0 .. 383; NAME_LENGTH at 164 range 0 .. 31; FILLER_3 at 168 range 0 .. 31; CLASS_PROT_ALARMS at 172 range 0 .. 31; CLASS_PROT_AUDITS at 176 range 0 .. 31; NAME at 180 range 0 .. 183; end record; for OCB_TYPE'SIZE use 1624; OCB_TYPE_INIT : constant OCB_TYPE := (FLINK => ADDRESS_ZERO, BLINK => ADDRESS_ZERO, SIZE => 0, TYP => 0, SUBTYP => 0, FILLER_1 => (0, 0), FLAGS => OCB_FLAGS_TYPE_INIT, OBJECT_TYPE => 0, CLASS_ORB => 0, DEFAULT_ORB => 0, ACCESS_BITNAMES => ADDRESS_ZERO, SUPPORT_RTNS => ADDRESS_ZERO, ACC_AUDITS => ADDRESS_ZERO, ACC_ALARMS => ADDRESS_ZERO, ACCESS_MODES => 0, FILLER_2 => 0, ACC_BITNAME_SIZE => 0, ACC_BITNAME_LENGTH => 0, ACCESS_AUDITS => (others => ASCII.NUL), ACCESS_ALARMS => (others => ASCII.NUL), NAME_LENGTH => 0, FILLER_3 => 0, CLASS_PROT_ALARMS => ADDRESS_ZERO, CLASS_PROT_AUDITS => ADDRESS_ZERO, NAME => (others => ASCII.NUL)); end OCBDEF;