--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:19 by OpenVMS SDL EV3-3 -- Source: 22-APR-1993 10:35:40 $1$DGA8085:[LIB_ADA.LIS]CLUICBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package CLUICBDEF is -- module $CLUICBDEF --+ -- CLUICB - Incarnation File Control Block --- CLUICB_M_WIP : constant := 16#00000001#; CLUICB_M_WREQ : constant := 16#00000002#; CLUICB_K_F_LENGTH : constant := 32; -- Length of fixed portion CLUICB_C_F_LENGTH : constant := 32; -- Length of fixed portion -- End of fixed portion of the block CLUICB_T_BUFFER : constant := 32; -- Start of incarnation -- file buffer area type CLUICB_FLAGS_TYPE is -- Flags record WIP : BOOLEAN; -- Write-in-progress bit WREQ : BOOLEAN; -- Write requested bit FILLER_1 : UNSIGNED_14; end record; for CLUICB_FLAGS_TYPE use record WIP at 0 range 0 .. 0; WREQ at 0 range 1 .. 1; FILLER_1 at 0 range 2 .. 15; end record; for CLUICB_FLAGS_TYPE'SIZE use 16; CLUICB_FLAGS_TYPE_INIT : constant CLUICB_FLAGS_TYPE := (WIP => FALSE, WREQ => FALSE, FILLER_1 => 0); type CLUICB_TYPE is record -- Fixed portion FL : ADDRESS; -- Forward Link BL : ADDRESS; -- Backward Link SIZE : UNSIGNED_WORD; -- Size of block TYP : UNSIGNED_BYTE; -- Structure type SUBTYP : UNSIGNED_BYTE; -- Structure subtype IRP : ADDRESS; -- Address of IRP LBN : UNSIGNED_LONGWORD; -- Incarnation file logical block number WIP_CNT : UNSIGNED_WORD; -- Write-in-progress counter FILLER_1 : UNSIGNED_WORD; -- Align FLAGS : CLUICB_FLAGS_TYPE; -- Flags FILLER_2 : UNSIGNED_WORD; -- Align FILLER_3 : STRING(1 .. 4); -- QUADWORD ALIGN end record; for CLUICB_TYPE use record FL at 0 range 0 .. 31; BL at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; TYP at 10 range 0 .. 7; SUBTYP at 11 range 0 .. 7; IRP at 12 range 0 .. 31; LBN at 16 range 0 .. 31; WIP_CNT at 20 range 0 .. 15; FILLER_1 at 22 range 0 .. 15; FLAGS at 24 range 0 .. 15; FILLER_2 at 26 range 0 .. 15; FILLER_3 at 28 range 0 .. 31; end record; for CLUICB_TYPE'SIZE use 256; CLUICB_TYPE_INIT : constant CLUICB_TYPE := (FL => ADDRESS_ZERO, BL => ADDRESS_ZERO, SIZE => 0, TYP => 0, SUBTYP => 0, IRP => ADDRESS_ZERO, LBN => 0, WIP_CNT => 0, FILLER_1 => 0, FLAGS => CLUICB_FLAGS_TYPE_INIT, FILLER_2 => 0, FILLER_3 => (others => ASCII.NUL)); end CLUICBDEF;