--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:31 by OpenVMS SDL EV3-3 -- Source: 18-MAY-1993 16:19:43 $1$DGA8085:[LIB_ADA.LIS]OLCKDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package OLCKDEF is -- module $OLCKDEF --+ -- OLCK - ORB LOCK -- -- This structures contains information about an outstanding LOCK -- on the Object Rights Block of a specific resourse. It is -- maintained in a per process database (CTL$GQ_ORB_LOCKDB) used -- to control ACL modifications through $CHANGE_ACL. -- --- OLCK_M_RESV_1 : constant := 16#00000001#; OLCK_K_FIXED_LEN : constant := 30; -- Fixed length OLCK_K_MAX_RSN : constant := 33; -- Maximum resource name OLCK_S_OLCKDEF : constant := 30; -- Old size name - synonym type OLCK_FLAGS_TYPE is -- Processing flags record RESV_1 : BOOLEAN; -- reserved for future FILLER_1 : UNSIGNED_15; end record; for OLCK_FLAGS_TYPE use record RESV_1 at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 15; end record; for OLCK_FLAGS_TYPE'SIZE use 16; OLCK_FLAGS_TYPE_INIT : constant OLCK_FLAGS_TYPE := (RESV_1 => FALSE, FILLER_1 => 0); type OLCK_TYPE is record FLINK : ADDRESS; -- Forward link BLINK : ADDRESS; -- Backward link SIZE : UNSIGNED_WORD; -- Allocation size TYP : UNSIGNED_BYTE; -- Structure type STYPE : UNSIGNED_BYTE; -- Subtype LOCKID : UNSIGNED_LONGWORD; -- Lockid PRV_LKMODE : UNSIGNED_BYTE; -- Previous lock mode CUR_LKMODE : UNSIGNED_BYTE; -- Current lock mode FLAGS : OLCK_FLAGS_TYPE; -- Processing flags RESV_1 : UNSIGNED_LONGWORD; -- Reserved RESV_2 : UNSIGNED_LONGWORD; -- for future use RSN_SIZE : UNSIGNED_WORD; -- Size of resource name RSN : STRING(1 .. 0); -- Resource name string end record; for OLCK_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; STYPE at 11 range 0 .. 7; LOCKID at 12 range 0 .. 31; PRV_LKMODE at 16 range 0 .. 7; CUR_LKMODE at 17 range 0 .. 7; FLAGS at 18 range 0 .. 15; RESV_1 at 20 range 0 .. 31; RESV_2 at 24 range 0 .. 31; RSN_SIZE at 28 range 0 .. 15; RSN at 30 range 0 .. -1; end record; for OLCK_TYPE'SIZE use 240; OLCK_TYPE_INIT : constant OLCK_TYPE := (FLINK => ADDRESS_ZERO, BLINK => ADDRESS_ZERO, SIZE => 0, TYP => 0, STYPE => 0, LOCKID => 0, PRV_LKMODE => 0, CUR_LKMODE => 0, FLAGS => OLCK_FLAGS_TYPE_INIT, RESV_1 => 0, RESV_2 => 0, RSN_SIZE => 0, RSN => (others => ASCII.NUL)); end OLCKDEF;