-- --**************************************************************************** --* * --* 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:49:47 by OpenVMS SDL EV1-33 -- Source: 27-FEB-1991 16:37:54 $11$DUA933:[LIB_ADA.LIS]ACBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package ACBDEF is -- module $ACBDEF --+ -- AST CONTROL BLOCK DEFINITIONS -- -- AST CONTROL BLOCKS EXIST AS SEPARATE STRUCTURES AND AS SUBSTRUCTURES -- WITHIN LARGER CONTROL BLOCKS SUCH AS I/O REQUEST PACKETS AND TIMER -- QUEUE ENTRIES. -- --- ACB_M_POSIX_ACB : constant := 16#00000008#; ACB_M_PKAST : constant := 16#00000010#; ACB_M_NODELETE : constant := 16#00000020#; ACB_M_QUOTA : constant := 16#00000040#; ACB_M_KAST : constant := 16#00000080#; ACB_K_LENGTH : constant := 28; -- Length of block. ACB_C_LENGTH : constant := 28; -- Length of block. type ACB_RMOD_TYPE is -- REQUEST ACCESS MODE record MODE : UNSIGNED_2; -- MODE FOR FINAL DELIVERY FILLER_1 : BOOLEAN; -- SPARE POSIX_ACB : BOOLEAN; -- USED FOR DELIVERING SIGNALS/EVENTS PKAST : BOOLEAN; -- PIGGY BACK SPECIAL KERNEL AST NODELETE : BOOLEAN; -- DON'T DELETE ACB ON DELIVERY QUOTA : BOOLEAN; -- ACCOUNT FOR QUOTA KAST : BOOLEAN; -- SPECIAL KERNEL AST end record; for ACB_RMOD_TYPE use record MODE at 0 range 0 .. 1; FILLER_1 at 0 range 2 .. 2; POSIX_ACB at 0 range 3 .. 3; PKAST at 0 range 4 .. 4; NODELETE at 0 range 5 .. 5; QUOTA at 0 range 6 .. 6; KAST at 0 range 7 .. 7; end record; for ACB_RMOD_TYPE'SIZE use 8; ACB_RMOD_TYPE_INIT : constant ACB_RMOD_TYPE := (MODE => 0, FILLER_1 => FALSE, POSIX_ACB => FALSE, PKAST => FALSE, NODELETE => FALSE, QUOTA => FALSE, KAST => FALSE); type ACB_TYPE is record ASTQFL : UNSIGNED_LONGWORD; -- AST QUEUE FORWARD LINK ASTQBL : UNSIGNED_LONGWORD; -- AST QUEUE BACKWARD LINK SIZE : UNSIGNED_WORD; -- STRUCTURE SIZE IN BYTES TYP : UNSIGNED_BYTE; -- STRUCTURE TYPE CODE RMOD : ACB_RMOD_TYPE; -- REQUEST ACCESS MODE PID : UNSIGNED_LONGWORD; -- PROCESS ID OF REQUEST AST : UNSIGNED_LONGWORD; -- AST ROUTINE ADDRESS ASTPRM : UNSIGNED_LONGWORD; -- AST PARAMETER KAST : UNSIGNED_LONGWORD; -- INTERNAL KERNEL MODE XFER ADDRESS end record; for ACB_TYPE use record ASTQFL at 0 range 0 .. 31; ASTQBL at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; TYP at 10 range 0 .. 7; RMOD at 11 range 0 .. 7; PID at 12 range 0 .. 31; AST at 16 range 0 .. 31; ASTPRM at 20 range 0 .. 31; KAST at 24 range 0 .. 31; end record; for ACB_TYPE'SIZE use 224; ACB_TYPE_INIT : constant ACB_TYPE := (ASTQFL => 0, ASTQBL => 0, SIZE => 0, TYP => 0, RMOD => ACB_RMOD_TYPE_INIT, PID => 0, AST => 0, ASTPRM => 0, KAST => 0); end ACBDEF;