-- --**************************************************************************** --* * --* 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:14 by OpenVMS SDL EV1-33 -- Source: 20-DEC-1994 13:41:51 $11$DUA933:[LIB_ADA.LIS]EIAFDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package EIAFDEF is -- module $EIAFDEF --+ -- EIAF - EXTENDED IMAGE ACTIVATOR FIXUP SECTION -- -- THE IMAGE ACTIVATOR FIXUP SECTION IS AN IMAGE SECTION THAT IS CREATED -- BY THE LINKER AND USED BY THE IMAGE ACTIVATOR TO MODIFY THE IMAGE AS -- IT IS ACTIVATED. THIS IS DONE TO MAINTAIN THE POSITION INDEPENDENCE -- OF EXTERNAL REFERENCES. --- EIAF_K_LENGTH : constant := 84; -- Length of fixed area (should be quadword aligned) EIAF_C_LENGTH : constant := 84; -- Length of fixed area EIAF_S_EIAFDEF : constant := 84; type EIAF_VERSION_TYPE is -- Version of this EIAF record MAJORID : UNSIGNED_LONGWORD; -- Major ID MINORID : UNSIGNED_LONGWORD; -- Minor ID end record; for EIAF_VERSION_TYPE use record MAJORID at 0 range 0 .. 31; MINORID at 4 range 0 .. 31; end record; for EIAF_VERSION_TYPE'SIZE use 64; EIAF_VERSION_TYPE_INIT : constant EIAF_VERSION_TYPE := (MAJORID => 0, MINORID => 0); type EIAF_FLAGS_TYPE is -- Flags record SHR : BOOLEAN; -- This is in a shareable image FILLER_1 : UNSIGNED_31; end record; for EIAF_FLAGS_TYPE use record SHR at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 31; end record; for EIAF_FLAGS_TYPE'SIZE use 32; EIAF_FLAGS_TYPE_INIT : constant EIAF_FLAGS_TYPE := (SHR => FALSE, FILLER_1 => 0); type EIAF_TYPE is record VERSION : EIAF_VERSION_TYPE; -- Version of this EIAF IAFLINK : UNSIGNED_QUADWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----IAFLINK : INTEGER_32; FIXUPLNK : UNSIGNED_QUADWORD; ----Component(s) below are defined as comments since they ----overlap other fields ---- ----FIXUPLNK : INTEGER_32; SIZE : INTEGER_32; -- Size of fixed part of EIAF FLAGS : EIAF_FLAGS_TYPE; -- Flags QRELFIXOFF : INTEGER_32; -- Offset to quadword relocation fixup data LRELFIXOFF : INTEGER_32; -- Offset to longword relocation fixup data QDOTADROFF : INTEGER_32; -- Offset to quadword .address fixup data LDOTADROFF : INTEGER_32; -- Offset to longword .address fixup data CODEADROFF : INTEGER_32; -- Offset to code address fixup data LPFIXOFF : INTEGER_32; -- Offset to linkage pair fixup data CHGPRTOFF : INTEGER_32; -- Offset to isect change prot. data SHLSTOFF : INTEGER_32; -- Offset to shareable image list SHRIMGCNT : INTEGER_32; -- Number of shareable images in shlst SHLEXTRA : INTEGER_32; -- Number of extra shareable images allowed PERMCTX : INTEGER_32; -- Permanent sharable image context BASE_VA : INTEGER_32; -- Base address of the image itself LPPSBFIXOFF : INTEGER_32; -- Offset to "linkage pair with procedure signature" fixups end record; for EIAF_TYPE use record VERSION at 0 range 0 .. 63; IAFLINK at 8 range 0 .. 63; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----IAFLINK at 8 range 0 .. 31; FIXUPLNK at 16 range 0 .. 63; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----FIXUPLNK at 16 range 0 .. 31; SIZE at 24 range 0 .. 31; FLAGS at 28 range 0 .. 31; QRELFIXOFF at 32 range 0 .. 31; LRELFIXOFF at 36 range 0 .. 31; QDOTADROFF at 40 range 0 .. 31; LDOTADROFF at 44 range 0 .. 31; CODEADROFF at 48 range 0 .. 31; LPFIXOFF at 52 range 0 .. 31; CHGPRTOFF at 56 range 0 .. 31; SHLSTOFF at 60 range 0 .. 31; SHRIMGCNT at 64 range 0 .. 31; SHLEXTRA at 68 range 0 .. 31; PERMCTX at 72 range 0 .. 31; BASE_VA at 76 range 0 .. 31; LPPSBFIXOFF at 80 range 0 .. 31; end record; for EIAF_TYPE'SIZE use 672; EIAF_TYPE_INIT : constant EIAF_TYPE := ( VERSION => EIAF_VERSION_TYPE_INIT, IAFLINK => (0, 0), FIXUPLNK => (0, 0), SIZE => 0, FLAGS => EIAF_FLAGS_TYPE_INIT, QRELFIXOFF => 0, LRELFIXOFF => 0, QDOTADROFF => 0, LDOTADROFF => 0, CODEADROFF => 0, LPFIXOFF => 0, CHGPRTOFF => 0, SHLSTOFF => 0, SHRIMGCNT => 0, SHLEXTRA => 0, PERMCTX => 0, BASE_VA => 0, LPPSBFIXOFF => 0); end EIAFDEF;