-- --**************************************************************************** --* * --* 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:50:10 by OpenVMS SDL EV1-33 -- Source: 5-SEP-1989 12:52:03 $11$DUA933:[LIB_ADA.LIS]BODDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package BODDEF is -- module $BODDEF --+ -- BOD - Buffer Object Descriptor -- -- A buffer object descriptor defines a buffer object used -- by the I/O subsystem. --- BOD_M_DELPEN : constant := 16#00000001#; BOD_M_NOQUOTA : constant := 16#00000002#; BOD_K_LENGTH : constant := 48; -- LENGTH OF STRUCTURE BOD_C_LENGTH : constant := 48; -- LENGTH OF STRUCTURE type BOD_FLAGS_TYPE is -- Flags word record DELPEN : BOOLEAN; -- Delete pending NOQUOTA : BOOLEAN; -- No quota charge for S0 window FILLER_1 : UNSIGNED_14; end record; for BOD_FLAGS_TYPE use record DELPEN at 0 range 0 .. 0; NOQUOTA at 0 range 1 .. 1; FILLER_1 at 0 range 2 .. 15; end record; for BOD_FLAGS_TYPE'SIZE use 16; BOD_FLAGS_TYPE_INIT : constant BOD_FLAGS_TYPE := (DELPEN => FALSE, NOQUOTA => FALSE, FILLER_1 => 0); type BOD_TYPE is record FLINK : UNSIGNED_LONGWORD; -- FLINK into PCB list BLINK : UNSIGNED_LONGWORD; -- BLINK into PCB list SIZE : UNSIGNED_WORD; -- Size of fixed portion of BOOTCB TYP : UNSIGNED_BYTE; -- Type of control block ACMODE : UNSIGNED_BYTE; -- Owner access mode SEQNUM : UNSIGNED_LONGWORD; -- Sequence # at object creation REFCNT : UNSIGNED_WORD; -- No. of references to this BOD FLAGS : BOD_FLAGS_TYPE; -- Flags word PID : UNSIGNED_LONGWORD; -- PID of creating process PAGCNT : UNSIGNED_LONGWORD; -- No. of pages in buffer object BASEPVA : UNSIGNED_LONGWORD; -- Base process address of buffer object BASESVA : UNSIGNED_LONGWORD; -- Base system address of buffer object SPARE_1 : UNSIGNED_LONGWORD; -- SPARE SPARE_2 : UNSIGNED_LONGWORD; -- SPARE SPARE_3 : UNSIGNED_LONGWORD; -- SPARE end record; for BOD_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; ACMODE at 11 range 0 .. 7; SEQNUM at 12 range 0 .. 31; REFCNT at 16 range 0 .. 15; FLAGS at 18 range 0 .. 15; PID at 20 range 0 .. 31; PAGCNT at 24 range 0 .. 31; BASEPVA at 28 range 0 .. 31; BASESVA at 32 range 0 .. 31; SPARE_1 at 36 range 0 .. 31; SPARE_2 at 40 range 0 .. 31; SPARE_3 at 44 range 0 .. 31; end record; for BOD_TYPE'SIZE use 384; BOD_TYPE_INIT : constant BOD_TYPE := (FLINK => 0, BLINK => 0, SIZE => 0, TYP => 0, ACMODE => 0, SEQNUM => 0, REFCNT => 0, FLAGS => BOD_FLAGS_TYPE_INIT, PID => 0, PAGCNT => 0, BASEPVA => 0, BASESVA => 0, SPARE_1 => 0, SPARE_2 => 0, SPARE_3 => 0); end BODDEF;