-- --**************************************************************************** --* * --* 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:52:13 by OpenVMS SDL EV1-33 -- Source: 2-SEP-1989 10:42:37 $11$DUA933:[LIB_ADA.LIS]IFDDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package IFDDEF is -- module $IFDDEF --+ -- IMAGE FILE DESCRIPTOR BLOCK - RETURNED BY IMAGE ACTIVATOR --- IFD_M_EXEONLY : constant := 16#00000001#; IFD_M_PRIV : constant := 16#00000002#; IFD_M_SETVECTOR : constant := 16#00000004#; IFD_K_LENGTH : constant := 28; -- LENGTH OF FIXED AREA OF IFD IFD_C_LENGTH : constant := 28; -- LENGTH OF FIXED AREA OF IFD type IFD_FLAGS_TYPE is -- IMAGE FILE DESCRIPTOR FLAGS record EXEONLY : BOOLEAN; -- EXECUTE ONLY FILE PRIV : BOOLEAN; -- IMAGE INSTALLED WITH ENHANCED PRIVILEGE SETVECTOR : BOOLEAN; -- PRIVILEGED VECTORS TO BE INSTALLED FILLER_1 : UNSIGNED_13; end record; for IFD_FLAGS_TYPE use record EXEONLY at 0 range 0 .. 0; PRIV at 0 range 1 .. 1; SETVECTOR at 0 range 2 .. 2; FILLER_1 at 0 range 3 .. 15; end record; for IFD_FLAGS_TYPE'SIZE use 16; IFD_FLAGS_TYPE_INIT : constant IFD_FLAGS_TYPE := (EXEONLY => FALSE, PRIV => FALSE, SETVECTOR => FALSE, FILLER_1 => 0); type IFD_TYPE is record SIZE : UNSIGNED_WORD; -- SIZE IN BYTES OF IMAGE FILE DESCRIPTOR FILNAMOFF : UNSIGNED_WORD; -- OFFSET TO RESULTANT FILE NAME STRING FILLER_1 : UNSIGNED_WORD; -- RESERVED OFFSET 1 FILLER_2 : UNSIGNED_WORD; -- RESERVED OFFSET 2 CHAN : UNSIGNED_WORD; -- CHANNEL ON WHICH IMAGE FILE IS OPEN CMCHAN : UNSIGNED_WORD; -- COMPATIBILITY MODE CHANNEL CMKFIADR : UNSIGNED_LONGWORD; -- COMPATIBILITY MODE IMAGE -- KNOWN FILE ENTRY ADDRESS OR 0 FLAGS : IFD_FLAGS_TYPE; -- IMAGE FILE DESCRIPTOR FLAGS FILLER_3 : UNSIGNED_WORD; -- SPARE WORD CURPROG : UNSIGNED_QUADWORD; -- STRING DESCRIPTOR FOR CURRENTLY -- RUNNING PROGRAM NAME end record; for IFD_TYPE use record SIZE at 0 range 0 .. 15; FILNAMOFF at 2 range 0 .. 15; FILLER_1 at 4 range 0 .. 15; FILLER_2 at 6 range 0 .. 15; CHAN at 8 range 0 .. 15; CMCHAN at 10 range 0 .. 15; CMKFIADR at 12 range 0 .. 31; FLAGS at 16 range 0 .. 15; FILLER_3 at 18 range 0 .. 15; CURPROG at 20 range 0 .. 63; end record; for IFD_TYPE'SIZE use 224; IFD_TYPE_INIT : constant IFD_TYPE := (SIZE => 0, FILNAMOFF => 0, FILLER_1 => 0, FILLER_2 => 0, CHAN => 0, CMCHAN => 0, CMKFIADR => 0, FLAGS => IFD_FLAGS_TYPE_INIT, FILLER_3 => 0, CURPROG => (0, 0)); end IFDDEF;