/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:27:23 by OpenVMS SDL EV3-3 */ /* Source: 27-MAR-1998 15:38:59 $1$DGA7274:[LIB_H.SRC]EIHDDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $EIHDDEF ***/ #ifndef __EIHDDEF_LOADED #define __EIHDDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /*+ */ /* EXTENDED IMAGE HEADER RECORD DEFINITIONS - FIRST RECORD OF THE EXTENDED IMAGE HEADER */ /*- */ #define EIHD$K_MAJORID 3 /* Major id constant */ #define EIHD$K_MINORID 0 /* Minor id constant */ #define EIHD$K_MINORID_64 1 /* Alt Minor id constant */ #define EIHD$K_EXE 1 /* Executable image */ #define EIHD$K_LIM 2 /* Linkable image */ #define EIHD$C_MINCODE 0 /* Low bound of ALIAS values */ #define EIHD$C_NATIVE 0 /* Alpha native mode image */ #define EIHD$C_CLI 1 /* Image is a CLI, run LOGINOUT */ #define EIHD$C_MAXCODE 1 /* High bound of ALIAS values */ #define EIHD$M_LNKDEBUG 0x1 #define EIHD$M_LNKNOTFR 0x2 #define EIHD$M_NOP0BUFS 0x4 #define EIHD$M_PICIMG 0x8 #define EIHD$M_P0IMAGE 0x10 #define EIHD$M_DBGDMT 0x20 #define EIHD$M_INISHR 0x40 #define EIHD$M_XLATED 0x80 #define EIHD$M_BIND_CODE_SEC 0x100 #define EIHD$M_BIND_DATA_SEC 0x200 #define EIHD$M_MKTHREADS 0x400 #define EIHD$M_UPCALLS 0x800 #define EIHD$M_OMV_READY 0x1000 #define EIHD$M_EXT_BIND_SECT 0x2000 #define EIHD$K_LENGTH 104 /* Length of fixed area */ #define EIHD$C_LENGTH 104 /* Length of fixed area */ #define EIHD$K_LENGTH_97 112 /* Length of fixed area */ #define EIHD$K_ALIAS_MINCODE -1 /* Low bound of ALIAS values */ /* Following are reserved but not used by the Alpha linker */ #define EIHD$K_VAX -1 /* Native mode image */ #define EIHD$K_RSX 0 /* RSX image produced by TKB */ #define EIHD$K_BPA 1 /* BASIC plus analog */ #define EIHD$K_ALIAS 2 /* Last 126 bytes contains ASCIC of image to activate */ #define EIHD$K_VAX_CLI 3 /* Image is a CLI, run LOGINOUT */ #define EIHD$K_PMAX 4 /* PMAX system image */ /* Alpha linker writes this value into last word of 1st header block for system images only */ #define EIHD$K_ALPHA 5 #define EIHD$K_ALIAS_MAXCODE 5 /* High bound of ALIAS values */ #define EIHD$S_EIHDDEF 512 /* Old size name - synonym */ typedef struct _eihd { __struct { /* Version of this EIHD */ unsigned int eihd$l_majorid; /* Major id */ unsigned int eihd$l_minorid; /* Minor id */ } eihd$r_version; unsigned int eihd$l_size; /* Size in bytes of image header */ unsigned int eihd$l_isdoff; /* Byte offset to ISD list */ unsigned int eihd$l_activoff; /* Byte offset to activation data */ unsigned int eihd$l_symdbgoff; /* Byte offset to symbol table and debug data */ unsigned int eihd$l_imgidoff; /* Byte offset to image ident data */ unsigned int eihd$l_patchoff; /* Byte offset to patch data */ __union { /* Relative virtual address of fixup info */ void *eihd$l_iafva; __int64 eihd$q_iafva; } eihd$r_iafva; __union { /* Relative virtual address of symbol vector */ void *eihd$l_symvva; __int64 eihd$q_symvva; } eihd$r_symvva; unsigned int eihd$l_version_array_off; /* Byte offset to version number array */ unsigned int eihd$l_imgtype; /* Image type */ /* */ /* IMAGE TYPE CODES */ /* */ unsigned int eihd$l_subtype; /* Code to use secondary image name */ /****************************************** */ /* */ /* Define legal range of SUBTYPE constants. MINCODE must be equal to the */ /* lowest value and MAXCODE must be equal to the highest value. */ /* */ unsigned int eihd$l_imgiocnt; /* size in bytes of image i/o section requested */ /*0 if default */ unsigned int eihd$l_iochancnt; /* # channels requested */ unsigned __int64 eihd$q_privreqs; /* requested privelege mask */ unsigned int eihd$l_hdrblkcnt; /* # header diskblocks */ __union { unsigned int eihd$l_lnkflags; /* Linker produced image flags */ __struct { unsigned eihd$v_lnkdebug : 1; /* Full debugging requested */ unsigned eihd$v_lnknotfr : 1; /* First transfer address missing */ unsigned eihd$v_nop0bufs : 1; /* RMS use of P0 for image i/o disabled */ unsigned eihd$v_picimg : 1; /* Image is position independent */ unsigned eihd$v_p0image : 1; /* Image is in P0 space only */ unsigned eihd$v_dbgdmt : 1; /* Image header has dmt fields */ unsigned eihd$v_inishr : 1; /* Transfer array contains valid IHA$L_INISHR */ unsigned eihd$v_xlated : 1; /* Translated image */ unsigned eihd$v_bind_code_sec : 1; /* EXE image sections can be put into S0 if set */ unsigned eihd$v_bind_data_sec : 1; /* DATA image sections can be put into S0 if set */ unsigned eihd$v_mkthreads : 1; /* Multiple kernel threads enabled */ unsigned eihd$v_upcalls : 1; /* Upcalls enabled */ unsigned eihd$v_omv_ready : 1; /* image may be correctly processed by OMV */ unsigned eihd$v_ext_bind_sect : 1; /* isects may be moved, if extended fixups applied. */ /* this applies to both code and data sections. */ unsigned eihd$v_fill_0_ : 2; } eihd$r_lnkflags_bits; } eihd$r_lnkflags_overlay; unsigned int eihd$l_ident; /* GBL SEC ident value for linkable image */ unsigned int eihd$l_sysver; /* SYS$K_VERSION or 0 if not linked with exec */ __struct { /* Linker control fields */ unsigned char eihd$b_matchctl; /* Linker match control */ unsigned char eihd$b_fill_1; /* Spares */ unsigned char eihd$b_fill_2; /* Spares */ unsigned char eihd$b_fill_3; /* Spares */ unsigned int eihd$l_symvect_size; /* Size of the symbol vector in bytes */ unsigned int eihd$l_virt_mem_block_size; /* Virtual memory size used for link (value given to /BPAGE, power of 2 */ } eihd$r_control; /* from 9 to 16) */ unsigned int eihd$l_ext_fixup_off; /* Byte offset to extended fixup data */ unsigned int eihd$l_noopt_psect_off; /* Byte offset to no_optimize psect table */ char eihd$t_skip [398]; /* ALIAS is last word in 512 byte block of system image */ unsigned short int eihd$w_alias; /* CODE identifies image type to MOM */ /****************************************** */ /* */ /* Define legal range of ALIAS constants. ALIAS_MINCODE must be equal to the */ /* lowest value and ALIAS_MAXCODE must be equal to the highest value. */ /* */ } EIHD; #if !defined(__VAXC) #define eihd$l_majorid eihd$r_version.eihd$l_majorid #define eihd$l_minorid eihd$r_version.eihd$l_minorid #define eihd$l_iafva eihd$r_iafva.eihd$l_iafva #define eihd$q_iafva eihd$r_iafva.eihd$q_iafva #define eihd$l_symvva eihd$r_symvva.eihd$l_symvva #define eihd$q_symvva eihd$r_symvva.eihd$q_symvva #define eihd$l_lnkflags eihd$r_lnkflags_overlay.eihd$l_lnkflags #define eihd$r_lnkflags_bits eihd$r_lnkflags_overlay.eihd$r_lnkflags_bits #define eihd$v_lnkdebug eihd$r_lnkflags_bits.eihd$v_lnkdebug #define eihd$v_lnknotfr eihd$r_lnkflags_bits.eihd$v_lnknotfr #define eihd$v_nop0bufs eihd$r_lnkflags_bits.eihd$v_nop0bufs #define eihd$v_picimg eihd$r_lnkflags_bits.eihd$v_picimg #define eihd$v_p0image eihd$r_lnkflags_bits.eihd$v_p0image #define eihd$v_dbgdmt eihd$r_lnkflags_bits.eihd$v_dbgdmt #define eihd$v_inishr eihd$r_lnkflags_bits.eihd$v_inishr #define eihd$v_xlated eihd$r_lnkflags_bits.eihd$v_xlated #define eihd$v_bind_code_sec eihd$r_lnkflags_bits.eihd$v_bind_code_sec #define eihd$v_bind_data_sec eihd$r_lnkflags_bits.eihd$v_bind_data_sec #define eihd$v_mkthreads eihd$r_lnkflags_bits.eihd$v_mkthreads #define eihd$v_upcalls eihd$r_lnkflags_bits.eihd$v_upcalls #define eihd$v_omv_ready eihd$r_lnkflags_bits.eihd$v_omv_ready #define eihd$v_ext_bind_sect eihd$r_lnkflags_bits.eihd$v_ext_bind_sect #define eihd$b_matchctl eihd$r_control.eihd$b_matchctl #define eihd$b_fill_1 eihd$r_control.eihd$b_fill_1 #define eihd$b_fill_2 eihd$r_control.eihd$b_fill_2 #define eihd$b_fill_3 eihd$r_control.eihd$b_fill_3 #define eihd$l_symvect_size eihd$r_control.eihd$l_symvect_size #define eihd$l_virt_mem_block_size eihd$r_control.eihd$l_virt_mem_block_size #endif /* #if !defined(__VAXC) */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __EIHDDEF_LOADED */