-- --**************************************************************************** --* * --* 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:51:00 by OpenVMS SDL EV1-33 -- Source: 2-SEP-1989 10:37:50 $11$DUA933:[LIB_ADA.LIS]DDBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package DDBDEF is -- module $DDBDEF --+ -- DDB - DEVICE DATA BLOCK -- -- THERE IS ONE DEVICE DATA BLOCK FOR EACH CONTROLLER IN A SYSTEM. --+ DDB_K_PACK : constant := 1; -- LARGE DISK PACKS DDB_K_CART : constant := 2; -- DISK CARTRIDGES DDB_K_SLOW : constant := 3; -- SLOW (CHEAP) DISKS (E.G., FLOPPY) DDB_K_TAPE : constant := 4; -- BLOCK STRUCTURED TAPE (E.G., TU58) DDB_K_LENGTH : constant := 68; -- LENGTH OF STANDARD DDB DDB_C_LENGTH : constant := 68; -- LENGTH OF STANDARD DDB type DDB_ACPD_TYPE is -- NAME OF DEFAULT ACP FOR DEVICE UNITS record FILLER_1 : UNSIGNED_BYTE_ARRAY (1 .. 3); ACPCLASS : UNSIGNED_BYTE; -- CLASS CODE OF DEFAULT ACP -- ACP CLASS CODE FOR DISKS end record; for DDB_ACPD_TYPE use record FILLER_1 at 0 range 0 .. 23; ACPCLASS at 3 range 0 .. 7; end record; for DDB_ACPD_TYPE'SIZE use 32; DDB_ACPD_TYPE_INIT : constant DDB_ACPD_TYPE := (FILLER_1 => (others => 0), ACPCLASS => 0); type DDB_NAME_TYPE is -- OF THE DEVICE record NAME_LEN : UNSIGNED_BYTE; -- CHARACTER COUNT NAME_STR : STRING(1 .. 15); -- CHARACTER STRING end record; for DDB_NAME_TYPE use record NAME_LEN at 0 range 0 .. 7; NAME_STR at 1 range 0 .. 119; end record; for DDB_NAME_TYPE'SIZE use 128; DDB_NAME_TYPE_INIT : constant DDB_NAME_TYPE := (NAME_LEN => 0, NAME_STR => (others => ASCII.NUL)); type DDB_DRVNAME_TYPE is -- record DRVNAM_LEN : UNSIGNED_BYTE; -- CHARACTER COUNT DRVNAM_STR : STRING(1 .. 15); -- CHARACTER STRING end record; for DDB_DRVNAME_TYPE use record DRVNAM_LEN at 0 range 0 .. 7; DRVNAM_STR at 1 range 0 .. 119; end record; for DDB_DRVNAME_TYPE'SIZE use 128; DDB_DRVNAME_TYPE_INIT : constant DDB_DRVNAME_TYPE := (DRVNAM_LEN => 0, DRVNAM_STR => (others => ASCII.NUL)); type DDB_2P_UCB_TYPE is -- ADDRESS OF FIRST UCB ON SECONDARY PATH record DP_UCB : UNSIGNED_LONGWORD; -- OLD STYLE SYNONYM FOR ABOVE end record; for DDB_2P_UCB_TYPE use record DP_UCB at 0 range 0 .. 31; end record; for DDB_2P_UCB_TYPE'SIZE use 32; DDB_2P_UCB_TYPE_INIT : constant DDB_2P_UCB_TYPE := (DP_UCB => 0); type DDB_TYPE is record LINK : UNSIGNED_LONGWORD; -- ADDRESS OF NEXT DDB IN LIST (0=LAST) UCB : UNSIGNED_LONGWORD; -- ADDRESS OF FIRST UCB FOR THIS DDB SIZE : UNSIGNED_WORD; -- SIZE OF DDB IN BYTES TYP : UNSIGNED_BYTE; -- TYPE OF DATA STRUCTURE FOR DDB FILLER_1 : UNSIGNED_BYTE; -- SPARE UNUSED BYTE DDT : UNSIGNED_LONGWORD; -- ADDRESS OF THE DRIVER DISPATCH TABLE ACPD : DDB_ACPD_TYPE; -- NAME OF DEFAULT ACP FOR DEVICE UNITS NAME : DDB_NAME_TYPE; -- OF THE DEVICE DRVNAME : DDB_DRVNAME_TYPE; -- SB : UNSIGNED_LONGWORD; -- ADDR OF SYSTEMBLOCK CONLINK : UNSIGNED_LONGWORD; -- NEXT DDB IN CONNECTION SUB-CHAIN ALLOCLS : UNSIGNED_LONGWORD; -- DEVICE ALLOCATION CLASS DDB_2P_UCB : DDB_2P_UCB_TYPE; -- ADDRESS OF FIRST UCB ON SECONDARY PATH end record; for DDB_TYPE use record LINK at 0 range 0 .. 31; UCB at 4 range 0 .. 31; SIZE at 8 range 0 .. 15; TYP at 10 range 0 .. 7; FILLER_1 at 11 range 0 .. 7; DDT at 12 range 0 .. 31; ACPD at 16 range 0 .. 31; NAME at 20 range 0 .. 127; DRVNAME at 36 range 0 .. 127; SB at 52 range 0 .. 31; CONLINK at 56 range 0 .. 31; ALLOCLS at 60 range 0 .. 31; DDB_2P_UCB at 64 range 0 .. 31; end record; for DDB_TYPE'SIZE use 544; DDB_TYPE_INIT : constant DDB_TYPE := (LINK => 0, UCB => 0, SIZE => 0, TYP => 0, FILLER_1 => 0, DDT => 0, ACPD => DDB_ACPD_TYPE_INIT, NAME => DDB_NAME_TYPE_INIT, DRVNAME => DDB_DRVNAME_TYPE_INIT, SB => 0, CONLINK => 0, ALLOCLS => 0, DDB_2P_UCB => DDB_2P_UCB_TYPE_INIT ); end DDBDEF;