-- --**************************************************************************** --* * --* Copyright (c) 2001 * --* by DIGITAL Equipment Corporation, Maynard, Mass. * --* * --* This software is furnished under a license and may be used and copied * --* only in accordance with the terms of such license and with the * --* inclusion of the above copyright notice. This software or any other * --* copies thereof may not be provided or otherwise made available to any * --* other person. No title to and ownership of the software is hereby * --* transferred. * --* * --* The information in this software is subject to change without notice * --* and should not be construed as a commitment by DIGITAL Equipment * --* Corporation. * --* * --* DIGITAL assumes no responsibility for the use or reliability of its * --* software on equipment which is not supplied by DIGITAL. * --* * --**************************************************************************** --******************************************************************************************************************** -- Created: 15-MAR-2001 22:53:20 by OpenVMS SDL EV1-33 -- Source: 18-DEC-1991 18:48:56 $11$DUA933:[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. -- --- NSA_K_ACC_LENGTH : constant := 48; -- Size of the access vectors type NSA_AAC_TYPE is record ACC_FAILURE : UNSIGNED_LONGWORD; -- ( must ACC_SUCCESS : UNSIGNED_LONGWORD; -- match ACC_SYSPRV : UNSIGNED_LONGWORD; -- NSA$L_EVT_... ACC_BYPASS : UNSIGNED_LONGWORD; -- offsets ) ACC_UPGRADE : UNSIGNED_LONGWORD; -- ACC_DOWNGRADE : UNSIGNED_LONGWORD; -- ACC_GRPPRV : UNSIGNED_LONGWORD; -- ACC_READALL : UNSIGNED_LONGWORD; -- ACC_OTHER : UNSIGNED_LONGWORD; -- ACC_RESV_1 : UNSIGNED_LONGWORD; -- reserved ACC_RESV_2 : UNSIGNED_LONGWORD; -- for ACC_RESV_3 : UNSIGNED_LONGWORD; -- future use end record; for NSA_AAC_TYPE use record ACC_FAILURE at 0 range 0 .. 31; ACC_SUCCESS at 4 range 0 .. 31; ACC_SYSPRV at 8 range 0 .. 31; ACC_BYPASS at 12 range 0 .. 31; ACC_UPGRADE at 16 range 0 .. 31; ACC_DOWNGRADE at 20 range 0 .. 31; ACC_GRPPRV at 24 range 0 .. 31; ACC_READALL at 28 range 0 .. 31; ACC_OTHER at 32 range 0 .. 31; ACC_RESV_1 at 36 range 0 .. 31; ACC_RESV_2 at 40 range 0 .. 31; ACC_RESV_3 at 44 range 0 .. 31; end record; for NSA_AAC_TYPE'SIZE use 384; NSA_AAC_TYPE_INIT : constant NSA_AAC_TYPE := (ACC_FAILURE => 0, ACC_SUCCESS => 0, ACC_SYSPRV => 0, ACC_BYPASS => 0, ACC_UPGRADE => 0, ACC_DOWNGRADE => 0, ACC_GRPPRV => 0, ACC_READALL => 0, ACC_OTHER => 0, ACC_RESV_1 => 0, ACC_RESV_2 => 0, ACC_RESV_3 => 0); 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 := 191; -- Length of structure 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 : UNSIGNED_LONGWORD; -- Forward link BLINK : UNSIGNED_LONGWORD; -- Backward link SIZE : UNSIGNED_WORD; -- Allocation size TYP : UNSIGNED_BYTE; -- Structure type SUBTYP : UNSIGNED_BYTE; -- Subtype 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 : UNSIGNED_LONGWORD; -- Ptr to access bitnames SUPPORT_RTNS : UNSIGNED_LONGWORD; -- Ptr to support rtns dispatch ACC_AUDITS : UNSIGNED_LONGWORD; -- Ptr to access audits ACC_ALARMS : UNSIGNED_LONGWORD; -- Ptr to access alarms ACCESS_MODES : UNSIGNED_LONGWORD; -- Mask of valid access modes FILLER_1 : UNSIGNED_LONGWORD; -- Reserved for future use ACC_BITNAME_SIZE : UNSIGNED_WORD; -- Size of pool for bitname table ACC_BITNAME_LENGTH : UNSIGNED_WORD; -- Length of access bitname table -- ACCESS_AUDITS : STRING(1 .. 48); -- Access audits ACCESS_ALARMS : STRING(1 .. 48); -- Access alarms -- NAME_LENGTH : UNSIGNED_WORD; -- Length of class name FILLER_2 : UNSIGNED_WORD; -- Alignment FILLER_3 : UNSIGNED_LONGWORD; -- to quadword CLASS_PROT_ALARMS : UNSIGNED_LONGWORD; -- Ptr to class alarms CLASS_PROT_AUDITS : UNSIGNED_LONGWORD; -- 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; FLAGS at 12 range 0 .. 31; OBJECT_TYPE at 16 range 0 .. 31; CLASS_ORB at 20 range 0 .. 31; DEFAULT_ORB at 24 range 0 .. 31; ACCESS_BITNAMES at 28 range 0 .. 31; SUPPORT_RTNS at 32 range 0 .. 31; ACC_AUDITS at 36 range 0 .. 31; ACC_ALARMS at 40 range 0 .. 31; ACCESS_MODES at 44 range 0 .. 31; FILLER_1 at 48 range 0 .. 31; ACC_BITNAME_SIZE at 52 range 0 .. 15; ACC_BITNAME_LENGTH at 54 range 0 .. 15; ACCESS_AUDITS at 56 range 0 .. 383; ACCESS_ALARMS at 104 range 0 .. 383; NAME_LENGTH at 152 range 0 .. 15; FILLER_2 at 154 range 0 .. 15; FILLER_3 at 156 range 0 .. 31; CLASS_PROT_ALARMS at 160 range 0 .. 31; CLASS_PROT_AUDITS at 164 range 0 .. 31; NAME at 168 range 0 .. 183; end record; for OCB_TYPE'SIZE use 1528; OCB_TYPE_INIT : constant OCB_TYPE := (FLINK => 0, BLINK => 0, SIZE => 0, TYP => 0, SUBTYP => 0, FLAGS => OCB_FLAGS_TYPE_INIT, OBJECT_TYPE => 0, CLASS_ORB => 0, DEFAULT_ORB => 0, ACCESS_BITNAMES => 0, SUPPORT_RTNS => 0, ACC_AUDITS => 0, ACC_ALARMS => 0, ACCESS_MODES => 0, FILLER_1 => 0, ACC_BITNAME_SIZE => 0, ACC_BITNAME_LENGTH => 0, ACCESS_AUDITS => (others => ASCII.NUL), ACCESS_ALARMS => (others => ASCII.NUL), NAME_LENGTH => 0, FILLER_2 => 0, FILLER_3 => 0, CLASS_PROT_ALARMS => 0, CLASS_PROT_AUDITS => 0, NAME => (others => ASCII.NUL)); end OCBDEF;