[Info-vax] For OpenVMS hackers
VAXman- at SendSpamHere.ORG
VAXman- at SendSpamHere.ORG
Fri Aug 31 14:17:18 EDT 2012
In article <a4328fc0-1513-4911-957d-4b81640e5228 at googlegroups.com>, Philippe.vouters at laposte.net writes:
>RE: Unknown
>
>As I write anyone willing to pay little attention to what I state at http:/=
>/vouters.dyndns.org/tima/ I never pretended to be perfect the very first ti=
>me but am constantly willing to tend to perfection. According to me perfect=
>ion never exists. Only God is able to although sometimes criticized for fac=
>ts we feel a real pity they did actually happen and which are outside our c=
>ommon understanding.
>
>Just checked again, I could not find in elfdef.h on the Itanium server I ca=
>n access to anything which would predeclare my const char ELF_magic definit=
>ion. Can you pinpoint me to the equivalent definition you've found in your =
>elfdef.h file ? The OpenVMS IA64 server I am using is running OpenVMS V8.3-=
>1H1 update 6.
RX2600$ SHOW SYSTEM/NOPROCESS
OpenVMS V8.3-1H1 on node RX2600 31-AUG-2012 14:02:57.09 Uptime 12 22:03:02
RX2600$ CC/VERSION
HP C V7.1-011 on OpenVMS IA64 V8.3-1H1
/********************************************************************************************************************************/
/* Created: 24-Sep-2008 12:41:44 by OpenVMS SDL EV3-2-1 */
/* Source: 24-SEP-2008 12:41:40 $1$DGA68:[STARLET_H.SRC]STARDEFAE.SDI;1 */
/********************************************************************************************************************************/
/*** MODULE ELFDEF IDENT X-39 ***/
#ifndef __ELFDEF_LOADED
#define __ELFDEF_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
#if !defined __NEW_STARLET
#define __NEW_STARLET 1
#endif
#define SHDR$M_SHF_MASKOS 0xffffffff0ff00000 /* SDL CONSTANT won't do 64 bit */
#define SHDR$M_SHF_MASKPROC 0xfffffffff0000000 /* too big for struct bitfield def (32bit limit) */
#include <elfdatyp.h> /* VMS-style (all uppercase) elf data type defs.*/
#ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */
#pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */
typedef void * Elf64_Addr;
#else
typedef unsigned __int64 Elf64_Addr;
#endif
typedef unsigned __int64 Elf64_Off;
typedef unsigned short Elf64_Half;
typedef unsigned __int32 Elf64_Word;
typedef __int32 Elf64_Sword;
typedef unsigned __int64 Elf64_Xword;
typedef __int64 Elf64_Sxword;
typedef unsigned __int32 Elf64_Section;
typedef unsigned __int32 Elf64_Symndx;
#define EHDR$K_EI_NIDENT 16
#define EHDR$SC_EF_VMS_COMCOD 0
#define EHDR$M_EF_VMS_COMCOD 0x3
#define EHDR$SC_EF_VMS_LINKAGES 2
#define EHDR$M_EF_VMS_LINKAGES 0x4
#define EHDR$M_EF_FILL_1 0x8
#define EHDR$SC_EF_IA_64_ABI64 4
#define EHDR$M_EF_IA_64_ABI64 0x10
#define EHDR$SC_EF_IA_64_REDUCEDFP 5
#define EHDR$M_EF_IA_64_REDUCEDFP 0x20
#define EHDR$SC_EF_IA_64_CONS_GP 6
#define EHDR$M_EF_IA_64_CONS_GP 0x40
#define EHDR$SC_EF_IA_64_NOFD_CONS_GP 7
#define EHDR$M_EF_IA_64_NOFD_CONS_GP 0x80
#define EHDR$SC_EF_IA_64_ABSOLUTE 8
#define EHDR$M_EF_IA_64_ABSOLUTE 0x100
#define EHDR$M_EF_FILL_2 0xFFFE00
#define EHDR$SC_EF_IA_64_ARCH 24
#define EHDR$M_EF_IA_64_ARCH 0xFF000000
#define EHDR$SC_EF_IA_64_LOOS 0
#define EHDR$M_EF_IA_64_LOOS 0xF
#define EHDR$M_EF_FILL_1A 0xFFF0
#define EHDR$SC_EF_IA_64_HIOS 16
#define EHDR$M_EF_IA_64_HIOS 0xFF0000
#define ELF64_EHDR$K_E_SIZE 64
#define ELF64_EHDR$C_E_SIZE 64
#define ELF64_EHDR$S_VMS_OBJECT_V1 64
#define ELF64_EHDR$S_VMS_IMAGE_V1 72
==> #ifdef __NEW_STARLET
==> #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
==> #pragma __nomember_alignment __quadword
==> #else
==> #pragma __nomember_alignment
==> #endif
==> typedef struct _elf64_ehdr {
==> #pragma __nomember_alignment
==> __union {
==> unsigned char ehdr$t_e_ident [16];
==> __struct {
==> unsigned char ehdr$b_ei_mag0;
==> unsigned char ehdr$b_ei_mag1;
==> unsigned char ehdr$b_ei_mag2;
==> unsigned char ehdr$b_ei_mag3;
==> unsigned char ehdr$b_ei_class;
==> unsigned char ehdr$b_ei_data;
==> unsigned char ehdr$b_ei_version;
==> unsigned char ehdr$b_ei_osabi;
==> unsigned char ehdr$b_ei_abiversion;
==> unsigned char ehdr$b_ei_pad [7];
==> } ehdr$r_bytes;
==> } ehdr$r_ident;
==> ELF64_HALF ehdr$w_e_type;
==> ELF64_HALF ehdr$w_e_machine;
==> ELF64_WORD ehdr$l_e_version;
==> ELF64_ADDR ehdr$pq_e_entry;
==> ELF64_OFF ehdr$q_e_phoff;
==> ELF64_OFF ehdr$q_e_shoff;
==> __union {
==> ELF64_WORD ehdr$l_e_flags;
==> __struct {
==> unsigned ehdr$v_ef_vms_comcod : 2;
==> unsigned ehdr$v_ef_vms_linkages : 1;
==> unsigned ehdr$v_ef_fill_1 : 1;
==> unsigned ehdr$v_ef_ia_64_abi64 : 1;
==> unsigned ehdr$v_ef_ia_64_reducedfp : 1;
==> unsigned ehdr$v_ef_ia_64_cons_gp : 1;
==> unsigned ehdr$v_ef_ia_64_nofd_cons_gp : 1;
==> unsigned ehdr$v_ef_ia_64_absolute : 1;
==> unsigned ehdr$v_ef_fill_2 : 15;
==> unsigned ehdr$v_ef_ia_64_arch : 8;
==> } ehdr$r_model_masks;
==> __struct {
==> unsigned ehdr$v_ef_ia_64_loos : 4;
==> unsigned ehdr$v_ef_fill_1a : 12;
==> unsigned ehdr$v_ef_ia_64_hios : 8;
==> } ehdr$r_os_specific;
==> } ehdr$r_flags_overlay;
==> ELF64_HALF ehdr$w_e_ehsize;
==> ELF64_HALF ehdr$w_e_phentsize;
==> ELF64_HALF ehdr$w_e_phnum;
==> ELF64_HALF ehdr$w_e_shentsize;
==> ELF64_HALF ehdr$w_e_shnum;
==> ELF64_HALF ehdr$w_e_shstrndx;
==> ELF64_XWORD ehdr$q_e_vms_needed_cnt;
==> } ELF64_EHDR;
==>
==> #if !defined(__VAXC)
==> #define ehdr$t_e_ident ehdr$r_ident.ehdr$t_e_ident
==> #define ehdr$b_ei_mag0 ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_mag0
==> #define ehdr$b_ei_mag1 ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_mag1
==> #define ehdr$b_ei_mag2 ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_mag2
==> #define ehdr$b_ei_mag3 ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_mag3
==> #define ehdr$b_ei_class ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_class
==> #define ehdr$b_ei_data ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_data
==> #define ehdr$b_ei_version ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_version
==> #define ehdr$b_ei_osabi ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_osabi
==> #define ehdr$b_ei_abiversion ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_abiversion
==> #define ehdr$b_ei_pad ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_pad
==> #define ehdr$l_e_flags ehdr$r_flags_overlay.ehdr$l_e_flags
==> #define ehdr$v_ef_vms_comcod ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_vms_comcod
==> #define ehdr$v_ef_vms_linkages ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_vms_linkages
==> #define ehdr$v_ef_fill_1 ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_fill_1
==> #define ehdr$v_ef_ia_64_abi64 ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_abi64
==> #define ehdr$v_ef_ia_64_reducedfp ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_reducedfp
==> #define ehdr$v_ef_ia_64_cons_gp ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_cons_gp
==> #define ehdr$v_ef_ia_64_nofd_cons_gp ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_nofd_cons_gp
==> #define ehdr$v_ef_ia_64_absolute ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_absolute
==> #define ehdr$v_ef_fill_2 ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_fill_2
==> #define ehdr$v_ef_ia_64_arch ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_arch
==> #define ehdr$v_ef_ia_64_loos ehdr$r_flags_overlay.ehdr$r_os_specific.ehdr$v_ef_ia_64_loos
==> #define ehdr$v_ef_fill_1a ehdr$r_flags_overlay.ehdr$r_os_specific.ehdr$v_ef_fill_1a
==> #define ehdr$v_ef_ia_64_hios ehdr$r_flags_overlay.ehdr$r_os_specific.ehdr$v_ef_ia_64_hios
==> #endif /* #if !defined(__VAXC) */
==>
==> #else /* __OLD_STARLET */
==> #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
==> #pragma __nomember_alignment __quadword
==> #else
==> #pragma __nomember_alignment
==> #endif
==> typedef struct _elf64_ehdr {
==> #pragma __nomember_alignment
==> __union {
==> unsigned char ehdr$t_e_ident [16];
==> __struct {
==> unsigned char ehdr$b_ei_mag0;
==> unsigned char ehdr$b_ei_mag1;
==> unsigned char ehdr$b_ei_mag2;
==> unsigned char ehdr$b_ei_mag3;
==> unsigned char ehdr$b_ei_class;
==> unsigned char ehdr$b_ei_data;
==> unsigned char ehdr$b_ei_version;
==> unsigned char ehdr$b_ei_osabi;
==> unsigned char ehdr$b_ei_abiversion;
==> unsigned char ehdr$b_ei_pad [7];
==> } ehdr$r_bytes;
==> } ehdr$r_ident;
==> elf64_half ehdr$w_e_type;
==> elf64_half ehdr$w_e_machine;
==> elf64_word ehdr$l_e_version;
==> elf64_addr ehdr$pq_e_entry;
==> elf64_off ehdr$q_e_phoff;
==> elf64_off ehdr$q_e_shoff;
==> __union {
==> elf64_word ehdr$l_e_flags;
==> __struct {
==> unsigned ehdr$v_ef_vms_comcod : 2;
==> unsigned ehdr$v_ef_vms_linkages : 1;
==> unsigned ehdr$v_ef_fill_1 : 1;
==> unsigned ehdr$v_ef_ia_64_abi64 : 1;
==> unsigned ehdr$v_ef_ia_64_reducedfp : 1;
==> unsigned ehdr$v_ef_ia_64_cons_gp : 1;
==> unsigned ehdr$v_ef_ia_64_nofd_cons_gp : 1;
==> unsigned ehdr$v_ef_ia_64_absolute : 1;
==> unsigned ehdr$v_ef_fill_2 : 15;
==> unsigned ehdr$v_ef_ia_64_arch : 8;
==> } ehdr$r_model_masks;
==> __struct {
==> unsigned ehdr$v_ef_ia_64_loos : 4;
==> unsigned ehdr$v_ef_fill_1a : 12;
==> unsigned ehdr$v_ef_ia_64_hios : 8;
==> } ehdr$r_os_specific;
==> } ehdr$r_flags_overlay;
==> elf64_half ehdr$w_e_ehsize;
==> elf64_half ehdr$w_e_phentsize;
==> elf64_half ehdr$w_e_phnum;
==> elf64_half ehdr$w_e_shentsize;
==> elf64_half ehdr$w_e_shnum;
==> elf64_half ehdr$w_e_shstrndx;
==> elf64_xword ehdr$q_e_vms_needed_cnt;
==> } elf64_ehdr;
==>
==> #if !defined(__VAXC)
==> #define ehdr$t_e_ident ehdr$r_ident.ehdr$t_e_ident
==> #define ehdr$b_ei_mag0 ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_mag0
==> #define ehdr$b_ei_mag1 ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_mag1
==> #define ehdr$b_ei_mag2 ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_mag2
==> #define ehdr$b_ei_mag3 ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_mag3
==> #define ehdr$b_ei_class ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_class
==> #define ehdr$b_ei_data ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_data
==> #define ehdr$b_ei_version ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_version
==> #define ehdr$b_ei_osabi ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_osabi
==> #define ehdr$b_ei_abiversion ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_abiversion
==> #define ehdr$b_ei_pad ehdr$r_ident.ehdr$r_bytes.ehdr$b_ei_pad
==> #define ehdr$l_e_flags ehdr$r_flags_overlay.ehdr$l_e_flags
==> #define ehdr$v_ef_vms_comcod ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_vms_comcod
==> #define ehdr$v_ef_vms_linkages ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_vms_linkages
==> #define ehdr$v_ef_fill_1 ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_fill_1
==> #define ehdr$v_ef_ia_64_abi64 ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_abi64
==> #define ehdr$v_ef_ia_64_reducedfp ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_reducedfp
==> #define ehdr$v_ef_ia_64_cons_gp ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_cons_gp
==> #define ehdr$v_ef_ia_64_nofd_cons_gp ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_nofd_cons_gp
==> #define ehdr$v_ef_ia_64_absolute ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_absolute
==> #define ehdr$v_ef_fill_2 ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_fill_2
==> #define ehdr$v_ef_ia_64_arch ehdr$r_flags_overlay.ehdr$r_model_masks.ehdr$v_ef_ia_64_arch
==> #define ehdr$v_ef_ia_64_loos ehdr$r_flags_overlay.ehdr$r_os_specific.ehdr$v_ef_ia_64_loos
==> #define ehdr$v_ef_fill_1a ehdr$r_flags_overlay.ehdr$r_os_specific.ehdr$v_ef_fill_1a
==> #define ehdr$v_ef_ia_64_hios ehdr$r_flags_overlay.ehdr$r_os_specific.ehdr$v_ef_ia_64_hios
==> #endif /* #if !defined(__VAXC) */
==>
==> #endif /* #ifdef __NEW_STARLET */
==> #define EHDR$K_EI_MAG0 0
==> #define EHDR$K_EI_MAG1 1
==> #define EHDR$K_EI_MAG2 2
==> #define EHDR$K_EI_MAG3 3
==> #define EHDR$K_EI_CLASS 4
==> #define EHDR$K_EI_DATA 5
==> #define EHDR$K_EI_VERSION 6
==> #define EHDR$K_EI_OSABI 7
==> #define EHDR$K_EI_ABIVERSION 8
==> #define EHDR$K_EI_PAD 9
==> #define EHDR$K_ELFMAG0 127
==> #define EHDR$K_ELFMAG1 69
==> #define EHDR$K_ELFMAG2 76
==> #define EHDR$K_ELFMAG3 70
==> #define EHDR$K_ELFCLASSNONE 0
==> #define EHDR$K_ELFCLASS32 1
==> #define EHDR$K_ELFCLASS64 2
==> #define EHDR$K_ELFDATANONE 0
==> #define EHDR$K_ELFDATA2LSB 1
==> #define EHDR$K_ELFDATA2MSB 2
==> #define EHDR$K_ELFOSABI_NONE 0
==> #define EHDR$K_ELFOSABI_OPENVMS 13
==> #define EHDR$K_ELFABIVERSION_VMS_CURR 2
==> #define EHDR$K_ELFABIVERSION_VMS_OBJ 2
==> #define EHDR$K_ELFABIVERSION_VMS_IMG 2
==> #define EHDR$K_ET_NONE 0
==> #define EHDR$K_ET_REL 1
==> #define EHDR$K_ET_EXEC 2
==> #define EHDR$K_ET_DYN 3
==> #define EHDR$K_ET_CORE 4
==> #define EHDR$K_ET_LOOS 65024
==> #define EHDR$K_ET_HIOS 65279
==> #define EHDR$K_ET_LOPROC 65280
==> #define EHDR$K_ET_HIPROC 65535
==> #define EHDR$K_ET_VMS_LINK_STB 65024
==> #define EHDR$K_ET_VMS_DSF 65025
==> #define EHDR$K_EM_NONE 0
==> #define EHDR$K_EM_IA_64 50
==> #define IIHA$K_VMSXFER_SIZE 48
==> #define IIHA$C_VMSXFER_SIZE 48
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _transfer_address {
#pragma __nomember_alignment
ELF64_WORD iiha$l_size;
ELF64_WORD iiha$l_spare;
__union {
ELF64_ADDR iiha$ar_tfradr [5];
__struct {
ELF64_ADDR iiha$pq_tfradr1;
ELF64_ADDR iiha$pq_tfradr2;
ELF64_ADDR iiha$pq_tfradr3;
ELF64_ADDR iiha$pq_tfradr4;
ELF64_ADDR iiha$pq_tfradr5;
} iiha$r_tfrnamed;
} iiha$r_tfr_overlay;
} TRANSFER_ADDRESS;
#if !defined(__VAXC)
#define iiha$ar_tfradr iiha$r_tfr_overlay.iiha$ar_tfradr
#define iiha$pq_tfradr1 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr1
#define iiha$pq_tfradr2 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr2
#define iiha$pq_tfradr3 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr3
#define iiha$pq_tfradr4 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr4
#define iiha$pq_tfradr5 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr5
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _transfer_address {
#pragma __nomember_alignment
elf64_word iiha$l_size;
elf64_word iiha$l_spare;
__union {
elf64_addr iiha$ar_tfradr [5];
__struct {
elf64_addr iiha$pq_tfradr1;
elf64_addr iiha$pq_tfradr2;
elf64_addr iiha$pq_tfradr3;
elf64_addr iiha$pq_tfradr4;
elf64_addr iiha$pq_tfradr5;
} iiha$r_tfrnamed;
} iiha$r_tfr_overlay;
} transfer_address;
#if !defined(__VAXC)
#define iiha$ar_tfradr iiha$r_tfr_overlay.iiha$ar_tfradr
#define iiha$pq_tfradr1 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr1
#define iiha$pq_tfradr2 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr2
#define iiha$pq_tfradr3 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr3
#define iiha$pq_tfradr4 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr4
#define iiha$pq_tfradr5 iiha$r_tfr_overlay.iiha$r_tfrnamed.iiha$pq_tfradr5
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
#define IIHA$C_INIT 1
#define IIHA$C_MAIN 2
#define IIHA$C_EXE_INIT 3
#define EHDR$K_EV_NONE 0
#define EHDR$K_EV_CURRENT 1
#define EHDR$K_VMS_COMCOD_SUCCESS 0
#define EHDR$K_VMS_COMCOD_WARNING 1
#define EHDR$K_VMS_COMCOD_ERROR 2
#define EHDR$K_VMS_COMCOD_ABORT 3
#define EHDR$K_EF_IA_64_MASKOS 16711695
#define EHDR$K_EF_IA_64_ARCHVERSION 1
#define SHDR$SC_SHF_WRITE 0
#define SHDR$M_SHF_WRITE 0x1
#define SHDR$SC_SHF_ALLOC 1
#define SHDR$M_SHF_ALLOC 0x2
#define SHDR$SC_SHF_EXECINSTR 2
#define SHDR$M_SHF_EXECINSTR 0x4
#define SHDR$M_SHF_F64_BITFILL_1 0x8
#define SHDR$SC_SHF_MERGE 4
#define SHDR$M_SHF_MERGE 0x10
#define SHDR$SC_SHF_STRINGS 5
#define SHDR$M_SHF_STRINGS 0x20
#define SHDR$SC_SHF_INFO_LINK 6
#define SHDR$M_SHF_INFO_LINK 0x40
#define SHDR$SC_SHF_LINK_ORDER 7
#define SHDR$M_SHF_LINK_ORDER 0x80
#define SHDR$SC_SHF_OS_NONCONFORMING 8
#define SHDR$M_SHF_OS_NONCONFORMING 0x100
#define SHDR$SC_SHF_GROUP 9
#define SHDR$M_SHF_GROUP 0x200
#define SHDR$SC_SHF_TLS 10
#define SHDR$M_SHF_TLS 0x400
#define SHDR$M_SHF_F64_BITFILL_2 0xFFFF800
#define SHDR$SC_SHF_IA_64_SHORT 28
#define SHDR$M_SHF_IA_64_SHORT 0x10000000
#define SHDR$SC_SHF_IA_64_NORECOV 29
#define SHDR$M_SHF_IA_64_NORECOV 0x20000000
#define SHDR$M_SHF_F64_BITFILL_3 0xC0000000
#define SHDR$SC_SHF_VMS_GLOBAL 32
#define SHDR$M_SHF_VMS_GLOBAL 0x100000000
#define SHDR$SC_SHF_VMS_OVERLAID 33
#define SHDR$M_SHF_VMS_OVERLAID 0x200000000
#define SHDR$SC_SHF_VMS_SHARED 34
#define SHDR$M_SHF_VMS_SHARED 0x400000000
#define SHDR$SC_SHF_VMS_VECTOR 35
#define SHDR$M_SHF_VMS_VECTOR 0x800000000
#define SHDR$SC_SHF_VMS_ALLOC_64BIT 36
#define SHDR$M_SHF_VMS_ALLOC_64BIT 0x1000000000
#define SHDR$SC_SHF_VMS_PROTECTED 37
#define SHDR$M_SHF_VMS_PROTECTED 0x2000000000
#define SHDR$M_SHF_F64_BITFILL_4 0xFFFFFFC000000000
#define SHDR$M_SHF_F64_OSFILL_1 0xFFFFF
#define SHDR$SC_SHF_MASK_LOOS 20
#define SHDR$M_SHF_MASK_LOOS 0xFF00000
#define SHDR$M_SHF_F64_OSFILL_2 0xF0000000
#define SHDR$SC_SHF_MASK_HIOS 32
#define SHDR$M_SHF_MASK_HIOS 0xFFFFFFFF00000000
#define SHDR$M_SHF_F64_PROCFILL_1 0xFFFFFFF
#define SHDR$SC_SHF_MASKLOPROC 28
#define SHDR$M_SHF_MASKLOPROC 0xF0000000
#define SHDR$SC_SHF_MASKHIPROC 32
#define SHDR$M_SHF_MASKHIPROC 0xFFFFFFFF00000000
#define ELF64_SHDR$K_SH_SIZE 64
#define ELF64_SHDR$C_SH_SIZE 64
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_shdr {
#pragma __nomember_alignment
ELF64_WORD shdr$l_sh_name;
ELF64_WORD shdr$l_sh_type;
__union {
ELF64_XWORD shdr$q_sh_flags;
__struct {
unsigned shdr$v_shf_write : 1;
unsigned shdr$v_shf_alloc : 1;
unsigned shdr$v_shf_execinstr : 1;
unsigned shdr$v_shf_f64_bitfill_1 : 1;
unsigned shdr$v_shf_merge : 1;
unsigned shdr$v_shf_strings : 1;
unsigned shdr$v_shf_info_link : 1;
unsigned shdr$v_shf_link_order : 1;
unsigned shdr$v_shf_os_nonconforming : 1;
unsigned shdr$v_shf_group : 1;
unsigned shdr$v_shf_tls : 1;
unsigned shdr$v_shf_f64_bitfill_2 : 17;
unsigned shdr$v_shf_ia_64_short : 1;
unsigned shdr$v_shf_ia_64_norecov : 1;
unsigned shdr$v_shf_f64_bitfill_3 : 2;
unsigned shdr$v_shf_vms_global : 1;
unsigned shdr$v_shf_vms_overlaid : 1;
unsigned shdr$v_shf_vms_shared : 1;
unsigned shdr$v_shf_vms_vector : 1;
unsigned shdr$v_shf_vms_alloc_64bit : 1;
unsigned shdr$v_shf_vms_protected : 1;
unsigned shdr$v_shf_f64_bitfill_4 : 26;
} shdr$r_flags64_bits;
__struct {
unsigned shdr$v_shf_f64_osfill_1 : 20;
unsigned shdr$v_shf_mask_loos : 8;
unsigned shdr$v_shf_f64_osfill_2 : 4;
unsigned shdr$v_shf_mask_hios : 32;
} shdr$r_flags64_osmask;
__struct {
unsigned shdr$v_shf_f64_procfill_1 : 28;
unsigned shdr$v_shf_maskloproc : 4;
unsigned shdr$v_shf_maskhiproc : 32;
} shdr$r_flags64_procmask;
} shdr$r_flags_overlay;
ELF64_ADDR shdr$pq_sh_addr;
ELF64_OFF shdr$q_sh_offset;
ELF64_XWORD shdr$q_sh_size;
ELF64_WORD shdr$l_sh_link;
ELF64_WORD shdr$l_sh_info;
ELF64_XWORD shdr$q_sh_addralign;
ELF64_XWORD shdr$q_sh_entsize;
} ELF64_SHDR;
#if !defined(__VAXC)
#define shdr$q_sh_flags shdr$r_flags_overlay.shdr$q_sh_flags
#define shdr$v_shf_write shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_write
#define shdr$v_shf_alloc shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_alloc
#define shdr$v_shf_execinstr shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_execinstr
#define shdr$v_shf_f64_bitfill_1 shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_f64_bitfill_1
#define shdr$v_shf_merge shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_merge
#define shdr$v_shf_strings shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_strings
#define shdr$v_shf_info_link shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_info_link
#define shdr$v_shf_link_order shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_link_order
#define shdr$v_shf_os_nonconforming shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_os_nonconforming
#define shdr$v_shf_group shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_group
#define shdr$v_shf_tls shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_tls
#define shdr$v_shf_f64_bitfill_2 shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_f64_bitfill_2
#define shdr$v_shf_ia_64_short shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_ia_64_short
#define shdr$v_shf_ia_64_norecov shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_ia_64_norecov
#define shdr$v_shf_f64_bitfill_3 shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_f64_bitfill_3
#define shdr$v_shf_vms_global shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_global
#define shdr$v_shf_vms_overlaid shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_overlaid
#define shdr$v_shf_vms_shared shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_shared
#define shdr$v_shf_vms_vector shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_vector
#define shdr$v_shf_vms_alloc_64bit shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_alloc_64bit
#define shdr$v_shf_vms_protected shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_protected
#define shdr$v_shf_f64_bitfill_4 shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_f64_bitfill_4
#define shdr$v_shf_f64_osfill_1 shdr$r_flags_overlay.shdr$r_flags64_osmask.shdr$v_shf_f64_osfill_1
#define shdr$v_shf_mask_loos shdr$r_flags_overlay.shdr$r_flags64_osmask.shdr$v_shf_mask_loos
#define shdr$v_shf_f64_osfill_2 shdr$r_flags_overlay.shdr$r_flags64_osmask.shdr$v_shf_f64_osfill_2
#define shdr$v_shf_mask_hios shdr$r_flags_overlay.shdr$r_flags64_osmask.shdr$v_shf_mask_hios
#define shdr$v_shf_f64_procfill_1 shdr$r_flags_overlay.shdr$r_flags64_procmask.shdr$v_shf_f64_procfill_1
#define shdr$v_shf_maskloproc shdr$r_flags_overlay.shdr$r_flags64_procmask.shdr$v_shf_maskloproc
#define shdr$v_shf_maskhiproc shdr$r_flags_overlay.shdr$r_flags64_procmask.shdr$v_shf_maskhiproc
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_shdr {
#pragma __nomember_alignment
elf64_word shdr$l_sh_name;
elf64_word shdr$l_sh_type;
__union {
elf64_xword shdr$q_sh_flags;
__struct {
unsigned shdr$v_shf_write : 1;
unsigned shdr$v_shf_alloc : 1;
unsigned shdr$v_shf_execinstr : 1;
unsigned shdr$v_shf_f64_bitfill_1 : 1;
unsigned shdr$v_shf_merge : 1;
unsigned shdr$v_shf_strings : 1;
unsigned shdr$v_shf_info_link : 1;
unsigned shdr$v_shf_link_order : 1;
unsigned shdr$v_shf_os_nonconforming : 1;
unsigned shdr$v_shf_group : 1;
unsigned shdr$v_shf_tls : 1;
unsigned shdr$v_shf_f64_bitfill_2 : 17;
unsigned shdr$v_shf_ia_64_short : 1;
unsigned shdr$v_shf_ia_64_norecov : 1;
unsigned shdr$v_shf_f64_bitfill_3 : 2;
unsigned shdr$v_shf_vms_global : 1;
unsigned shdr$v_shf_vms_overlaid : 1;
unsigned shdr$v_shf_vms_shared : 1;
unsigned shdr$v_shf_vms_vector : 1;
unsigned shdr$v_shf_vms_alloc_64bit : 1;
unsigned shdr$v_shf_vms_protected : 1;
unsigned shdr$v_shf_f64_bitfill_4 : 26;
} shdr$r_flags64_bits;
__struct {
unsigned shdr$v_shf_f64_osfill_1 : 20;
unsigned shdr$v_shf_mask_loos : 8;
unsigned shdr$v_shf_f64_osfill_2 : 4;
unsigned shdr$v_shf_mask_hios : 32;
} shdr$r_flags64_osmask;
__struct {
unsigned shdr$v_shf_f64_procfill_1 : 28;
unsigned shdr$v_shf_maskloproc : 4;
unsigned shdr$v_shf_maskhiproc : 32;
} shdr$r_flags64_procmask;
} shdr$r_flags_overlay;
elf64_addr shdr$pq_sh_addr;
elf64_off shdr$q_sh_offset;
elf64_xword shdr$q_sh_size;
elf64_word shdr$l_sh_link;
elf64_word shdr$l_sh_info;
elf64_xword shdr$q_sh_addralign;
elf64_xword shdr$q_sh_entsize;
} elf64_shdr;
#if !defined(__VAXC)
#define shdr$q_sh_flags shdr$r_flags_overlay.shdr$q_sh_flags
#define shdr$v_shf_write shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_write
#define shdr$v_shf_alloc shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_alloc
#define shdr$v_shf_execinstr shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_execinstr
#define shdr$v_shf_f64_bitfill_1 shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_f64_bitfill_1
#define shdr$v_shf_merge shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_merge
#define shdr$v_shf_strings shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_strings
#define shdr$v_shf_info_link shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_info_link
#define shdr$v_shf_link_order shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_link_order
#define shdr$v_shf_os_nonconforming shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_os_nonconforming
#define shdr$v_shf_group shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_group
#define shdr$v_shf_tls shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_tls
#define shdr$v_shf_f64_bitfill_2 shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_f64_bitfill_2
#define shdr$v_shf_ia_64_short shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_ia_64_short
#define shdr$v_shf_ia_64_norecov shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_ia_64_norecov
#define shdr$v_shf_f64_bitfill_3 shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_f64_bitfill_3
#define shdr$v_shf_vms_global shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_global
#define shdr$v_shf_vms_overlaid shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_overlaid
#define shdr$v_shf_vms_shared shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_shared
#define shdr$v_shf_vms_vector shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_vector
#define shdr$v_shf_vms_alloc_64bit shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_alloc_64bit
#define shdr$v_shf_vms_protected shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_vms_protected
#define shdr$v_shf_f64_bitfill_4 shdr$r_flags_overlay.shdr$r_flags64_bits.shdr$v_shf_f64_bitfill_4
#define shdr$v_shf_f64_osfill_1 shdr$r_flags_overlay.shdr$r_flags64_osmask.shdr$v_shf_f64_osfill_1
#define shdr$v_shf_mask_loos shdr$r_flags_overlay.shdr$r_flags64_osmask.shdr$v_shf_mask_loos
#define shdr$v_shf_f64_osfill_2 shdr$r_flags_overlay.shdr$r_flags64_osmask.shdr$v_shf_f64_osfill_2
#define shdr$v_shf_mask_hios shdr$r_flags_overlay.shdr$r_flags64_osmask.shdr$v_shf_mask_hios
#define shdr$v_shf_f64_procfill_1 shdr$r_flags_overlay.shdr$r_flags64_procmask.shdr$v_shf_f64_procfill_1
#define shdr$v_shf_maskloproc shdr$r_flags_overlay.shdr$r_flags64_procmask.shdr$v_shf_maskloproc
#define shdr$v_shf_maskhiproc shdr$r_flags_overlay.shdr$r_flags64_procmask.shdr$v_shf_maskhiproc
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
#define SHDR$K_SHN_UNDEF 0
#define SHDR$K_SHN_LORESERVE 65280
#define SHDR$K_SHN_LOPROC 65280
#define SHDR$K_SHN_HIPROC 65311
#define SHDR$K_SHN_LOOS 65312
#define SHDR$K_SHN_VMS_SYMVEC 65312
#define SHDR$K_SHN_HIOS 65343
#define SHDR$K_SHN_ABS 65521
#define SHDR$K_SHN_COMMON 65522
#define SHDR$K_SHN_XINDEX 65535
#define SHDR$K_SHN_HIRESERVE 65535
#define SHDR$K_SHT_NULL 0
#define SHDR$K_SHT_PROGBITS 1
#define SHDR$K_SHT_SYMTAB 2
#define SHDR$K_SHT_STRTAB 3
#define SHDR$K_SHT_RELA 4
#define SHDR$K_SHT_HASH 5
#define SHDR$K_SHT_DYNAMIC 6
#define SHDR$K_SHT_NOTE 7
#define SHDR$K_SHT_NOBITS 8
#define SHDR$K_SHT_REL 9
#define SHDR$K_SHT_SHLIB 10
#define SHDR$K_SHT_DYNSYM 11
#define SHDR$K_SHT_UNUSED_12 12
#define SHDR$K_SHT_UNUSED_13 13
#define SHDR$K_SHT_INIT_ARRAY 14
#define SHDR$K_SHT_FINI_ARRAY 15
#define SHDR$K_SHT_PREINIT_ARRAY 16
#define SHDR$K_SHT_GROUP 17
#define SHDR$K_SHT_SYMTAB_SHNDX 18
#define GRPSEC$M_COMDAT_FLAG 1
#define SHDR$K_SHT_LOOS 1610612736
#define SHDR$K_SHT_HIOS 1879048191
#define SHDR$K_SHT_LOPROC 1879048192
#define SHDR$K_SHT_HIPROC 2147483647
#define SHDR$K_SHT_LOUSER -2147483648
#define SHDR$K_SHT_HIUSER -1
#define SHDR$K_SHT_VMS_TRACE 1610612736
#define SHDR$K_SHT_VMS_TIE_SIGNATURES 1610612737
#define SHDR$K_SHT_VMS_DEBUG 1610612738
#define SHDR$K_SHT_VMS_DEBUG_STR 1610612739
#define SHDR$K_SHT_VMS_LINKAGES 1610612740
#define SHDR$K_SHT_VMS_SYMBOL_VECTOR 1610612741
#define SHDR$K_SHT_VMS_FIXUP 1610612742
#define SHDR$K_SHT_VMS_DISPLAY_NAME_INF 1610612743
#define SHDR$K_SHT_IA_64_LOPSREG 2013265920
#define SHDR$K_SHT_IA_64_HIPSREG 2147483647
#define SHDR$K_SHT_IA_64_EXT 1879048192
#define SHDR$K_SHT_IA_64_UNWIND 1879048193
#define SHDR$K_SHT_IA_64_PRIORITY_INIT 2030043136
#define VMSSIG$$K_SIZE 8
#define VMSSIG$$C_SIZE 8
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _vmssigentry {
#pragma __nomember_alignment
ELF64_WORD vmssig$l_se_symbol;
ELF64_WORD vmssig$l_se_offset;
} VMSSIGENTRY;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _vmssigentry {
#pragma __nomember_alignment
elf64_word vmssig$l_se_symbol;
elf64_word vmssig$l_se_offset;
} vmssigentry;
#endif /* #ifdef __NEW_STARLET */
#define UNWIND$K_SIZE 24
#define UNWIND$C_SIZE 24
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _ia_64_unwind_entry {
#pragma __nomember_alignment
ELF64_ADDR unwind$pq_ue_start;
ELF64_ADDR unwind$pq_ue_end;
ELF64_ADDR unwind$pq_ue_info;
} IA_64_UNWIND_ENTRY;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _ia_64_unwind_entry {
#pragma __nomember_alignment
elf64_addr unwind$pq_ue_start;
elf64_addr unwind$pq_ue_end;
elf64_addr unwind$pq_ue_info;
} ia_64_unwind_entry;
#endif /* #ifdef __NEW_STARLET */
#define ELF64_NHDR$K_NH_SIZE 24
#define ELF64_NHDR$C_NH_SIZE 24
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_nhdr {
#pragma __nomember_alignment
ELF64_XWORD nhdr$q_nh_namesz;
ELF64_XWORD nhdr$q_nh_descsz;
ELF64_XWORD nhdr$q_nh_type;
} ELF64_NHDR;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_nhdr {
#pragma __nomember_alignment
elf64_xword nhdr$q_nh_namesz;
elf64_xword nhdr$q_nh_descsz;
elf64_xword nhdr$q_nh_type;
} elf64_nhdr;
#endif /* #ifdef __NEW_STARLET */
#define ELF64_MHDR$K_MH_SIZE 34
#define ELF64_MHDR$C_MH_SIZE 34
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_mhdr {
#pragma __nomember_alignment
unsigned char mhdr$b_mh_create_date [17];
unsigned char mhdr$b_mh_patch_date [17];
unsigned char mhdr$b_mh_name_version;
char mhdr$b_fill_119_ [5];
} ELF64_MHDR;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_mhdr {
#pragma __nomember_alignment
unsigned char mhdr$b_mh_create_date [17];
unsigned char mhdr$b_mh_patch_date [17];
unsigned char mhdr$b_mh_name_version;
char mhdr$b_fill_119_ [5];
} elf64_mhdr;
#endif /* #ifdef __NEW_STARLET */
#define ELF64_ORIGDYN$K_MAJOR_ID 1
#define ELF64_ORIGDYN$K_MINOR_ID 3
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_origdyn {
#pragma __nomember_alignment
unsigned int origdyn$l_major_id;
unsigned int origdyn$l_minor_id;
unsigned __int64 origdyn$q_manipulation_date;
unsigned __int64 origdyn$q_link_flags;
unsigned int origdyn$l_elf_flags;
unsigned int origdyn$l_filler;
unsigned char origdyn$b_imgid [1];
char origdyn$b_fill_120_ [7];
} ELF64_ORIGDYN;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_origdyn {
#pragma __nomember_alignment
unsigned int origdyn$l_major_id;
unsigned int origdyn$l_minor_id;
unsigned int origdyn$q_manipulation_date [2];
unsigned int origdyn$q_link_flags [2];
unsigned int origdyn$l_elf_flags;
unsigned int origdyn$l_filler;
unsigned char origdyn$b_imgid [1];
char origdyn$b_fill_120_ [7];
} elf64_origdyn;
#endif /* #ifdef __NEW_STARLET */
#define NHDR$K_NT_VMS_MHD 1
#define NHDR$K_NT_VMS_LNM 2
#define NHDR$K_NT_VMS_SRC 3
#define NHDR$K_NT_VMS_TITLE 4
#define NHDR$K_NT_VMS_EIDC 5
#define NHDR$K_NT_VMS_FPMODE 6
#define NHDR$K_NT_VMS_LINKTIME 101
#define NHDR$K_NT_VMS_IMGNAM 102
#define NHDR$K_NT_VMS_IMGID 103
#define NHDR$K_NT_VMS_LINKID 104
#define NHDR$K_NT_VMS_IMGBID 105
#define NHDR$K_NT_VMS_GSTNAM 106
#define NHDR$K_NT_VMS_ORIG_DYN 107
#define NHDR$K_NT_VMS_PATCHTIME 108
/* VMS_EIDC manipulation macros and values */
#define VMS_EIDC_ERRSEV(f) (((f) & 0x38) >> 3)
#define VMS_EIDC_FLAGS(e) ((e) << 3)
#define NHDR$K_VMS_EIDC_ERRSEV_WARNING 0
#define NHDR$K_VMS_EIDC_ERRSEV_SUCCESS 1
#define NHDR$K_VMS_EIDC_ERRSEV_ERROR 2
#define NHDR$K_VMS_EIDC_ERRSEV_SEVERE 4
#define ELF64_SYM$K_ST_SIZE 24
#define ELF64_SYM$C_ST_SIZE 24
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_sym {
#pragma __nomember_alignment
ELF64_WORD symtab$l_st_name;
unsigned char symtab$b_st_info;
unsigned char symtab$b_st_other;
ELF64_HALF symtab$w_st_shndx;
ELF64_ADDR symtab$pq_st_value;
ELF64_XWORD symtab$q_st_size;
} ELF64_SYM;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_sym {
#pragma __nomember_alignment
elf64_word symtab$l_st_name;
unsigned char symtab$b_st_info;
unsigned char symtab$b_st_other;
elf64_half symtab$w_st_shndx;
elf64_addr symtab$pq_st_value;
elf64_xword symtab$q_st_size;
} elf64_sym;
#endif /* #ifdef __NEW_STARLET */
#define SYMTAB$K_STB_LOCAL 0
#define SYMTAB$K_STB_GLOBAL 1
#define SYMTAB$K_STB_WEAK 2
#define SYMTAB$K_STB_LOOS 10
#define SYMTAB$K_STB_VMS_WEAK 11
#define SYMTAB$K_STB_VMS_SYSTEM 12
#define SYMTAB$K_STB_HIOS 12
#define SYMTAB$K_STB_LOPROC 13
#define SYMTAB$K_STB_HIPROC 15
#define SYMTAB$K_STT_NOTYPE 0
#define SYMTAB$K_STT_OBJECT 1
#define SYMTAB$K_STT_FUNC 2
#define SYMTAB$K_STT_SECTION 3
#define SYMTAB$K_STT_FILE 4
#define SYMTAB$K_STT_COMMON 5
#define SYMTAB$K_STT_TLS 6
#define SYMTAB$K_STT_LOOS 10
#define SYMTAB$K_STT_HIOS 12
#define SYMTAB$K_STT_LOPROC 13
#define SYMTAB$K_STT_HIPROC 15
#define SYMTAB$K_STV_DEFAULT 0
#define SYMTAB$K_STV_INTERNAL 1
#define SYMTAB$K_STV_HIDDEN 2
#define SYMTAB$K_STV_PROTECTED 3
#define SYMTAB$K_STV_UNIVERSAL 3
#define SYMTAB$K_VMS_STO_VISIBILITY 3
#define SYMTAB$K_VMS_STO_FUNC_TYPE 48
#define SYMTAB$K_VMS_STO_LINKAGE 192
#define SYMTAB$K_VMS_SFT_CODE_ADDR 0
#define SYMTAB$K_VMS_SFT_SYMV_IDX 1
#define SYMTAB$K_VMS_SFT_FD 2
#define SYMTAB$K_VMS_SFT_RESERVE 3
#define SYMTAB$K_VMS_STL_IGNORE 0
#define SYMTAB$K_VMS_STL_RESERVED 1
#define SYMTAB$K_VMS_STL_STD 2
#define SYMTAB$K_VMS_STL_LNK 3
#define ELF64_RELA64$K_R_SIZE 24
#define ELF64_RELA64$C_R_SIZE 24
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_rela64 {
#pragma __nomember_alignment
ELF64_ADDR rela$pq_r_offset;
__union {
ELF64_XWORD rela$q_r_info;
__struct {
ELF64_WORD rela$l_r_type;
ELF64_WORD rela$l_r_sym;
} rela$r_symtyp;
} rela$r_info_olay;
ELF64_SXWORD rela$q_r_addend;
} ELF64_RELA64;
#if !defined(__VAXC)
#define rela$q_r_info rela$r_info_olay.rela$q_r_info
#define rela$l_r_type rela$r_info_olay.rela$r_symtyp.rela$l_r_type
#define rela$l_r_sym rela$r_info_olay.rela$r_symtyp.rela$l_r_sym
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_rela64 {
#pragma __nomember_alignment
elf64_addr rela$pq_r_offset;
__union {
elf64_xword rela$q_r_info;
__struct {
elf64_word rela$l_r_type;
elf64_word rela$l_r_sym;
} rela$r_symtyp;
} rela$r_info_olay;
elf64_sxword rela$q_r_addend;
} elf64_rela64;
#if !defined(__VAXC)
#define rela$q_r_info rela$r_info_olay.rela$q_r_info
#define rela$l_r_type rela$r_info_olay.rela$r_symtyp.rela$l_r_type
#define rela$l_r_sym rela$r_info_olay.rela$r_symtyp.rela$l_r_sym
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
/*
** C Macros to manipulate st_other symbol table visibility info
*/
#define VMS_ST_VISIBILITY(o) ((o) & SYMTAB$K_VMS_STO_VISIBILITY)
#define VMS_ST_FUNC_TYPE(o) (((o) & SYMTAB$K_VMS_STO_FUNC_TYPE) >> 4)
#define VMS_ST_LINKAGE(o) (((o) & SYMTAB$K_VMS_STO_LINKAGE) >> 6)
#define VMS_ST_OTHER(v, f, l) ( \
( (v) & SYMTAB$K_VMS_STO_VISIBILITY) + \
( ((f) << 4) & SYMTAB$K_VMS_STO_FUNC_TYPE) + \
( ((l) << 6) & SYMTAB$K_VMS_STO_LINKAGE) )
/*
** C Macros to manipulate symbol table relocation info
*/
#define ELF64_ST_BIND(BnD) ((BnD) >> 4)
#define ELF64_ST_TYPE(TyP) ((TyP) & 0xF)
#define ELF64_ST_INFO(BnD,TyP) (((BnD) << 4) + ((TyP) &0xF))
#define ELF64_ST_VISIBILITY(o) ((o) & 0x3)
/*
** C Macros to manipulate Elf64_Rela relocation info. The low 32 bits are the
** relo type, and the upper 32 bits are relo's index into the symbol table.
*/
#define ELF64_R_SYM64(SymI) ((Elf64_Xword)((SymI) >> 32))
#define ELF64_R_TYPE64(TyP) ((Elf64_Word)(TyP))
#define ELF64_R_INFO64(SymI,TyP) ((((Elf64_Xword)(SymI)) << 32) + ((Elf64_Word)(TyP)))
/*
** C macros for manipulated exception/unwind flags fields.
*/
#define UNW_LENGTH(x) ((x) & UNWIND$M_UNW_LENGTH)
#define UNW_FLAG_EHANDLER(x) ((x) & UNWIND$M_UNW_FLAG_EHANDLER)
#define UNW_FLAG_UHANDLER(x) ((x) & UNWIND$M_UNW_FLAG_UHANDLER)
#define UNW_FLAG_OSMASK UNWIND$M_UNW_FLAG_OSMASK
#define UNW_FLAG_MASK UNWIND$M_UNW_FLAG_MASK
#define UNW_VER(x) ((x) & UNWIND$M_UNW_VER)
#define UNW_IVMS_MODE(x) ((x) & UNWIND$M_UNW_IVMS_MODE)
#define EXCEPTION_MODE_MASK OSSD$M_EXCEPTION_MODE
#define UNWIND_DESCRIPTOR_VERSION UNWIND$K_DESC_VERSION
#define ABI_UNIX UNWIND$K_P10_ABI_UNIX
#define ABI_HPUX UNWIND$K_P10_ABI_HPUX
#define ABI_WNT UNWIND$K_P10_ABI_WNT
#define ABI_VMS UNWIND$K_P10_ABI_VMS
#define RELA$K_R_IA_64_NONE 0
#define RELA$K_R_IA_64_IMM14 33
#define RELA$K_R_IA_64_IMM22 34
#define RELA$K_R_IA_64_IMM64 35
#define RELA$K_R_IA_64_DIR32MSB 36
#define RELA$K_R_IA_64_DIR32LSB 37
#define RELA$K_R_IA_64_DIR64MSB 38
#define RELA$K_R_IA_64_DIR64LSB 39
#define RELA$K_R_IA_64_GPREL22 42
#define RELA$K_R_IA_64_GPREL64I 43
#define RELA$K_R_IA_64_GPREL32MSB 44
#define RELA$K_R_IA_64_GPREL32LSB 45
#define RELA$K_R_IA_64_GPREL64MSB 46
#define RELA$K_R_IA_64_GPREL64LSB 47
#define RELA$K_R_IA_64_LTOFF22 50
#define RELA$K_R_IA_64_LTOFF64I 51
#define RELA$K_R_IA_64_PLTOFF22 58
#define RELA$K_R_IA_64_PLTOFF64I 59
#define RELA$K_R_IA_64_PLTOFF64MSB 62
#define RELA$K_R_IA_64_PLTOFF64LSB 63
#define RELA$K_R_IA_64_FPTR64I 67
#define RELA$K_R_IA_64_FPTR32MSB 68
#define RELA$K_R_IA_64_FPTR32LSB 69
#define RELA$K_R_IA_64_FPTR64MSB 70
#define RELA$K_R_IA_64_FPTR64LSB 71
#define RELA$K_R_IA_64_PCREL60B 72
#define RELA$K_R_IA_64_PCREL21B 73
#define RELA$K_R_IA_64_PCREL21M 74
#define RELA$K_R_IA_64_PCREL21F 75
#define RELA$K_R_IA_64_PCREL32MSB 76
#define RELA$K_R_IA_64_PCREL32LSB 77
#define RELA$K_R_IA_64_PCREL64MSB 78
#define RELA$K_R_IA_64_PCREL64LSB 79
#define RELA$K_R_IA_64_LTOFF_FPTR22 82
#define RELA$K_R_IA_64_LTOFF_FPTR64I 83
#define RELA$K_R_IA_64_LTOFF_FPTR32MSB 84
#define RELA$K_R_IA_64_LTOFF_FPTR32LSB 85
#define RELA$K_R_IA_64_LTOFF_FPTR64MSB 86
#define RELA$K_R_IA_64_LTOFF_FPTR64LSB 87
#define RELA$K_R_IA_64_SEGREL32MSB 92
#define RELA$K_R_IA_64_SEGREL32LSB 93
#define RELA$K_R_IA_64_SEGREL64MSB 94
#define RELA$K_R_IA_64_SEGREL64LSB 95
#define RELA$K_R_IA_64_SECREL32MSB 100
#define RELA$K_R_IA_64_SECREL32LSB 101
#define RELA$K_R_IA_64_SECREL64MSB 102
#define RELA$K_R_IA_64_SECREL64LSB 103
#define RELA$K_R_IA_64_REL32MSB 108
#define RELA$K_R_IA_64_REL32LSB 109
#define RELA$K_R_IA_64_REL64MSB 110
#define RELA$K_R_IA_64_REL64LSB 111
#define RELA$K_R_IA_64_LTV32MSB 116
#define RELA$K_R_IA_64_LTV32LSB 117
#define RELA$K_R_IA_64_LTV64MSB 118
#define RELA$K_R_IA_64_LTV64LSB 119
#define RELA$K_R_IA_64_PCREL21BI 121
#define RELA$K_R_IA_64_PCREL22 122
#define RELA$K_R_IA_64_PCREL64I 123
#define RELA$K_R_IA_64_IPLTMSB 128
#define RELA$K_R_IA_64_IPLTLSB 129
#define RELA$K_R_IA_64_COPY 132
#define RELA$K_R_IA_64_SUB 133
#define RELA$K_R_IA_64_LTOFF22X 134
#define RELA$K_R_IA_64_LDXMOV 135
#define RELA$K_R_IA_64_TPREL14 145
#define RELA$K_R_IA_64_TPREL22 146
#define RELA$K_R_IA_64_TPREL64I 147
#define RELA$K_R_IA_64_TPREL64MSB 150
#define RELA$K_R_IA_64_TPREL64LSB 151
#define RELA$K_R_IA_64_LTOFF_TP22 154
#define RELA$K_R_IA_64_DTPMOD64MSB 166
#define RELA$K_R_IA_64_DTPMOD64LSB 167
#define RELA$K_R_IA_64_LTOFF_DTPMOD22 170
#define RELA$K_R_IA_64_DTPREL14 177
#define RELA$K_R_IA_64_DTPREL22 178
#define RELA$K_R_IA_64_DTPREL64I 179
#define RELA$K_R_IA_64_DTPREL32MSB 180
#define RELA$K_R_IA_64_DTPREL32LSB 181
#define RELA$K_R_IA_64_DTPREL64MSB 182
#define RELA$K_R_IA_64_DTPREL64LSB 183
#define RELA$K_R_IA_64_LTOFF_DTPREL22 186
#define RELA$K_R_IA_64_LOOS 1879048192
#define RELA$K_R_IA_64_HIOS -1
#define RELA$K_R_IA_64_DIR8 1879048192
#define RELA$K_R_IA_64_DIR16LSB 1879048193
#define RELA$K_R_IA_64_VMS_CALL_SIG 1879048194
#define RELA$K_R_IA_64_VMS_EXECLET_FUNC 1879048195
#define RELA$K_R_IA_64_VMS_EXECLET_DATA 1879048196
#define RELA$K_R_IA_64_VMS_FIX8 1879048197
#define RELA$K_R_IA_64_VMS_FIX16 1879048198
#define RELA$K_R_IA_64_VMS_FIX32 1879048199
#define RELA$K_R_IA_64_VMS_FIX64 1879048200
#define RELA$K_R_IA_64_VMS_FIXFD 1879048201
#define RELA$K_R_IA_64_VMS_ACC_LOAD 1879048202
#define RELA$K_R_IA_64_VMS_ACC_ADD 1879048203
#define RELA$K_R_IA_64_VMS_ACC_SUB 1879048204
#define RELA$K_R_IA_64_VMS_ACC_MUL 1879048205
#define RELA$K_R_IA_64_VMS_ACC_DIV 1879048206
#define RELA$K_R_IA_64_VMS_ACC_AND 1879048207
#define RELA$K_R_IA_64_VMS_ACC_IOR 1879048208
#define RELA$K_R_IA_64_VMS_ACC_EOR 1879048209
#define RELA$K_R_IA_64_VMS_ACC_ASH 1879048210
#define RELA$K_R_IA_64_VMS_ACC_STO8 1879048212
#define RELA$K_R_IA_64_VMS_ACC_STO16LSB 1879048213
#define RELA$K_R_IA_64_VMS_ACC_STO32LSB 1879048214
#define RELA$K_R_IA_64_VMS_ACC_STO64LSB 1879048215
/* Display Name Info (dni) - aka Demangler info - entries */
/* Internally some more structures and names are used. However, a */
/* developer should only use the types Elf64_vms_dni32 and */
/* Elf64_vms_dni64, both contain all necessary fields. In C notation */
/* all the necesary 32 bit fields are: */
/* dni32$l_dni_format */
/* dni32$l_fmt1_info[i].fmt1$l_dni_demangler */
/* dni32$l_fmt1_info[i].fmt1$l_dni_symbol */
/* dni32$l_fmt1_info[i].fmt1$l_dni_data */
/* dni32$l_fmt2_info[i].fmt2$l_dni_symbol */
/* dni32$l_fmt2_info[i].fmt2$l_dni_data */
/* dni32$l_fmt3.fmt3$l_dni_demangler */
/* dni32$l_fmt4.fmt4$l_dni_demangler */
/* dni32$l_fmt4_info[i].fmt4$l_dni_symbol */
/* dni32$l_fmt4_info[i].fmt4$l_dni_data */
typedef int DemanglerRoutine (
char *result_string, int *result_string_length,
const char *elf_name, const char *demangler_data);
#define DNI$_SUCCESS 1
#define DNI$_NORMAL 1 /* demangled string is in result buffer */
#define DNI$_ERROR 2 /* error in demangling */
#define DNI$_ALTERNATE_SUCCESS 9
#define DNI$_SAME 9 /* demangled string identical to input string */
/* Data representations (0,4,8) */
#define DNI$_DATA_ULEB 0 /* ULEBs (see DWARF spec) */
#define DNI$_DATA_WORD 4 /* ELF64_Word, VMS Longword */
#define DNI$_DATA_XWORD 8 /* ELF64_Xword, VMS Quadword */
/* DNI formats (1, ..., 4) */
#define DNI$_FMT1 1
#define DNI$_FMT2 2
#define DNI$_FMT3 3
#define DNI$_FMT4 4
/* */
/* 32 bit variants */
/* */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt1 {
#pragma __nomember_alignment
ELF64_WORD fmt1$l_dni_demangler;
ELF64_WORD fmt1$l_dni_symbol;
ELF64_WORD fmt1$l_dni_data;
} ELF64_VMS_DNI32_FMT1;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt1 {
#pragma __nomember_alignment
elf64_word fmt1$l_dni_demangler;
elf64_word fmt1$l_dni_symbol;
elf64_word fmt1$l_dni_data;
} elf64_vms_dni32_fmt1;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt2 {
#pragma __nomember_alignment
ELF64_WORD fmt2$l_dni_symbol;
ELF64_WORD fmt2$l_dni_data;
} ELF64_VMS_DNI32_FMT2;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt2 {
#pragma __nomember_alignment
elf64_word fmt2$l_dni_symbol;
elf64_word fmt2$l_dni_data;
} elf64_vms_dni32_fmt2;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt3 {
#pragma __nomember_alignment
ELF64_WORD fmt3$l_dni_demangler;
} ELF64_VMS_DNI32_FMT3;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt3 {
#pragma __nomember_alignment
elf64_word fmt3$l_dni_demangler;
} elf64_vms_dni32_fmt3;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt4 {
#pragma __nomember_alignment
ELF64_WORD fmt4$l_dni_demangler;
} ELF64_VMS_DNI32_FMT4;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt4 {
#pragma __nomember_alignment
elf64_word fmt4$l_dni_demangler;
} elf64_vms_dni32_fmt4;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt4_sub {
#pragma __nomember_alignment
ELF64_WORD fmt4$l_dni_symbol;
ELF64_WORD fmt4$l_dni_data;
} ELF64_VMS_DNI32_FMT4_SUB;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32_fmt4_sub {
#pragma __nomember_alignment
elf64_word fmt4$l_dni_symbol;
elf64_word fmt4$l_dni_data;
} elf64_vms_dni32_fmt4_sub;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32 {
#pragma __nomember_alignment
ELF64_WORD dni32$l_dni_format;
__union {
__struct {
ELF64_VMS_DNI32_FMT1 dni32$l_fmt1_info [1];
} dni32$r_format_l1;
__struct {
ELF64_VMS_DNI32_FMT2 dni32$l_fmt2_info [1];
} dni32$r_format_l2;
__struct {
ELF64_VMS_DNI32_FMT3 dni32$l_fmt3;
} dni32$r_format_l3;
__struct {
ELF64_VMS_DNI32_FMT4 dni32$l_fmt4;
ELF64_VMS_DNI32_FMT4_SUB dni32$l_fmt4_info [1];
} dni32$r_format_l4;
} dni32$r_entry32;
} ELF64_VMS_DNI32;
#if !defined(__VAXC)
#define dni32$r_format_l1 dni32$r_entry32.dni32$r_format_l1
#define dni32$l_fmt1_info dni32$r_format_l1.dni32$l_fmt1_info
#define dni32$r_format_l2 dni32$r_entry32.dni32$r_format_l2
#define dni32$l_fmt2_info dni32$r_format_l2.dni32$l_fmt2_info
#define dni32$r_format_l3 dni32$r_entry32.dni32$r_format_l3
#define dni32$l_fmt3 dni32$r_format_l3.dni32$l_fmt3
#define dni32$r_format_l4 dni32$r_entry32.dni32$r_format_l4
#define dni32$l_fmt4 dni32$r_format_l4.dni32$l_fmt4
#define dni32$l_fmt4_info dni32$r_format_l4.dni32$l_fmt4_info
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni32 {
#pragma __nomember_alignment
elf64_word dni32$l_dni_format;
__union {
__struct {
elf64_vms_dni32_fmt1 dni32$l_fmt1_info [1];
} dni32$r_format_l1;
__struct {
elf64_vms_dni32_fmt2 dni32$l_fmt2_info [1];
} dni32$r_format_l2;
__struct {
elf64_vms_dni32_fmt3 dni32$l_fmt3;
} dni32$r_format_l3;
__struct {
elf64_vms_dni32_fmt4 dni32$l_fmt4;
elf64_vms_dni32_fmt4_sub dni32$l_fmt4_info [1];
} dni32$r_format_l4;
} dni32$r_entry32;
} elf64_vms_dni32;
#if !defined(__VAXC)
#define dni32$l_fmt1_info dni32$r_entry32.dni32$r_format_l1.dni32$l_fmt1_info
#define dni32$l_fmt2_info dni32$r_entry32.dni32$r_format_l2.dni32$l_fmt2_info
#define dni32$l_fmt3 dni32$r_entry32.dni32$r_format_l3.dni32$l_fmt3
#define dni32$l_fmt4 dni32$r_entry32.dni32$r_format_l4.dni32$l_fmt4
#define dni32$l_fmt4_info dni32$r_entry32.dni32$r_format_l4.dni32$l_fmt4_info
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
/* */
/* 64 bit variants */
/* */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt1 {
#pragma __nomember_alignment
ELF64_XWORD fmt1$q_dni_demangler;
ELF64_XWORD fmt1$q_dni_symbol;
ELF64_XWORD fmt1$q_dni_data;
} ELF64_VMS_DNI64_FMT1;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt1 {
#pragma __nomember_alignment
elf64_xword fmt1$q_dni_demangler;
elf64_xword fmt1$q_dni_symbol;
elf64_xword fmt1$q_dni_data;
} elf64_vms_dni64_fmt1;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt2 {
#pragma __nomember_alignment
ELF64_XWORD fmt2$q_dni_symbol;
ELF64_XWORD fmt2$q_dni_data;
} ELF64_VMS_DNI64_FMT2;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt2 {
#pragma __nomember_alignment
elf64_xword fmt2$q_dni_symbol;
elf64_xword fmt2$q_dni_data;
} elf64_vms_dni64_fmt2;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt3 {
#pragma __nomember_alignment
ELF64_XWORD fmt3$q_dni_demangler;
} ELF64_VMS_DNI64_FMT3;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt3 {
#pragma __nomember_alignment
elf64_xword fmt3$q_dni_demangler;
} elf64_vms_dni64_fmt3;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt4 {
#pragma __nomember_alignment
ELF64_XWORD fmt4$q_dni_demangler;
} ELF64_VMS_DNI64_FMT4;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt4 {
#pragma __nomember_alignment
elf64_xword fmt4$q_dni_demangler;
} elf64_vms_dni64_fmt4;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt4_sub {
#pragma __nomember_alignment
ELF64_XWORD fmt4$q_dni_symbol;
ELF64_XWORD fmt4$q_dni_data;
} ELF64_VMS_DNI64_FMT4_SUB;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64_fmt4_sub {
#pragma __nomember_alignment
elf64_xword fmt4$q_dni_symbol;
elf64_xword fmt4$q_dni_data;
} elf64_vms_dni64_fmt4_sub;
#endif /* #ifdef __NEW_STARLET */
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64 {
#pragma __nomember_alignment
ELF64_XWORD dni64$q_dni_format;
__union {
__struct {
ELF64_VMS_DNI64_FMT1 dni64$q_fmt1_info [1];
} dni64$r_format_q1;
__struct {
ELF64_VMS_DNI64_FMT2 dni64$q_fmt2_info [1];
} dni64$r_format_q2;
__struct {
ELF64_VMS_DNI64_FMT3 dni64$q_fmt3;
} dni64$r_format_q3;
__struct {
ELF64_VMS_DNI64_FMT4 dni64$q_fmt4;
ELF64_VMS_DNI64_FMT4_SUB dni64$q_fmt4_info [1];
} dni64$r_format_q4;
} dni64$r_entry64;
} ELF64_VMS_DNI64;
#if !defined(__VAXC)
#define dni64$r_format_q1 dni64$r_entry64.dni64$r_format_q1
#define dni64$q_fmt1_info dni64$r_format_q1.dni64$q_fmt1_info
#define dni64$r_format_q2 dni64$r_entry64.dni64$r_format_q2
#define dni64$q_fmt2_info dni64$r_format_q2.dni64$q_fmt2_info
#define dni64$r_format_q3 dni64$r_entry64.dni64$r_format_q3
#define dni64$q_fmt3 dni64$r_format_q3.dni64$q_fmt3
#define dni64$r_format_q4 dni64$r_entry64.dni64$r_format_q4
#define dni64$q_fmt4 dni64$r_format_q4.dni64$q_fmt4
#define dni64$q_fmt4_info dni64$r_format_q4.dni64$q_fmt4_info
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __longword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_vms_dni64 {
#pragma __nomember_alignment
elf64_xword dni64$q_dni_format;
__union {
__struct {
elf64_vms_dni64_fmt1 dni64$q_fmt1_info [1];
} dni64$r_format_q1;
__struct {
elf64_vms_dni64_fmt2 dni64$q_fmt2_info [1];
} dni64$r_format_q2;
__struct {
elf64_vms_dni64_fmt3 dni64$q_fmt3;
} dni64$r_format_q3;
__struct {
elf64_vms_dni64_fmt4 dni64$q_fmt4;
elf64_vms_dni64_fmt4_sub dni64$q_fmt4_info [1];
} dni64$r_format_q4;
} dni64$r_entry64;
} elf64_vms_dni64;
#if !defined(__VAXC)
#define dni64$q_fmt1_info dni64$r_entry64.dni64$r_format_q1.dni64$q_fmt1_info
#define dni64$q_fmt2_info dni64$r_entry64.dni64$r_format_q2.dni64$q_fmt2_info
#define dni64$q_fmt3 dni64$r_entry64.dni64$r_format_q3.dni64$q_fmt3
#define dni64$q_fmt4 dni64$r_entry64.dni64$r_format_q4.dni64$q_fmt4
#define dni64$q_fmt4_info dni64$r_entry64.dni64$r_format_q4.dni64$q_fmt4_info
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
#define PHDR$SC_PF_X 0
#define PHDR$M_PF_X 0x1
#define PHDR$SC_PF_W 1
#define PHDR$M_PF_W 0x2
#define PHDR$SC_PF_R 2
#define PHDR$M_PF_R 0x4
#define PHDR$M_PF_FILL_3TO19 0xFFFF8
#define PHDR$SC_PF_VMS_NOWRIT_RELOC 20
#define PHDR$M_PF_VMS_NOWRIT_RELOC 0x100000
#define PHDR$SC_PF_VMS_INITIALCODE 21
#define PHDR$M_PF_VMS_INITIALCODE 0x200000
#define PHDR$SC_PF_VMS_RESIDENT 22
#define PHDR$M_PF_VMS_RESIDENT 0x400000
#define PHDR$SC_PF_VMS_VECTOR 23
#define PHDR$M_PF_VMS_VECTOR 0x800000
#define PHDR$SC_PF_VMS_PROTECT 24
#define PHDR$M_PF_VMS_PROTECT 0x1000000
#define PHDR$SC_PF_VMS_NOWRIT_FIXUP 25
#define PHDR$M_PF_VMS_NOWRIT_FIXUP 0x2000000
#define PHDR$SC_PF_VMS_SHORT 26
#define PHDR$M_PF_VMS_SHORT 0x4000000
#define PHDR$SC_PF_VMS_SHARED 27
#define PHDR$M_PF_VMS_SHARED 0x8000000
#define PHDR$SC_PF_IA_64_NORECOV 31
#define PHDR$M_PF_IA_64_NORECOV 0x80000000
#define PHDR$M_FILL_1 0xFFFFF
#define PHDR$SC_PF_MASKOS 20
#define PHDR$M_PF_MASKOS 0xFF00000
#define PHDR$SC_PF_MASKPROC 28
#define PHDR$M_PF_MASKPROC 0xF0000000
#define ELF64_PHDR$K_SIZE 56
#define ELF64_PHDR$C_SIZE 56
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_phdr {
#pragma __nomember_alignment
ELF64_WORD phdr$l_p_type;
__union {
ELF64_WORD phdr$l_p_flags;
__struct {
unsigned phdr$v_pf_x : 1;
unsigned phdr$v_pf_w : 1;
unsigned phdr$v_pf_r : 1;
unsigned phdr$v_pf_fill_3to19 : 17;
unsigned phdr$v_pf_vms_nowrit_reloc : 1;
unsigned phdr$v_pf_vms_initialcode : 1;
unsigned phdr$v_pf_vms_resident : 1;
unsigned phdr$v_pf_vms_vector : 1;
unsigned phdr$v_pf_vms_protect : 1;
unsigned phdr$v_pf_vms_nowrit_fixup : 1;
unsigned phdr$v_pf_vms_short : 1;
unsigned phdr$v_pf_vms_shared : 1;
unsigned phdr$v_pf_fill_24to30 : 3;
unsigned phdr$v_pf_ia_64_norecov : 1;
} phdr$r_flagbits;
__struct {
unsigned phdr$v_fill_1 : 20;
unsigned phdr$v_pf_maskos : 8;
unsigned phdr$v_pf_maskproc : 4;
} phdr$r_flagmasks;
} phdr$r_flags;
ELF64_OFF phdr$q_p_offset;
ELF64_ADDR phdr$pq_p_vaddr;
ELF64_ADDR phdr$pq_p_paddr;
ELF64_XWORD phdr$q_p_filesz;
ELF64_XWORD phdr$q_p_memsz;
ELF64_XWORD phdr$q_p_align;
} ELF64_PHDR;
#if !defined(__VAXC)
#define phdr$l_p_flags phdr$r_flags.phdr$l_p_flags
#define phdr$v_pf_x phdr$r_flags.phdr$r_flagbits.phdr$v_pf_x
#define phdr$v_pf_w phdr$r_flags.phdr$r_flagbits.phdr$v_pf_w
#define phdr$v_pf_r phdr$r_flags.phdr$r_flagbits.phdr$v_pf_r
#define phdr$v_pf_fill_3to19 phdr$r_flags.phdr$r_flagbits.phdr$v_pf_fill_3to19
#define phdr$v_pf_vms_nowrit_reloc phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_nowrit_reloc
#define phdr$v_pf_vms_initialcode phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_initialcode
#define phdr$v_pf_vms_resident phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_resident
#define phdr$v_pf_vms_vector phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_vector
#define phdr$v_pf_vms_protect phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_protect
#define phdr$v_pf_vms_nowrit_fixup phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_nowrit_fixup
#define phdr$v_pf_vms_short phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_short
#define phdr$v_pf_vms_shared phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_shared
#define phdr$v_pf_fill_24to30 phdr$r_flags.phdr$r_flagbits.phdr$v_pf_fill_24to30
#define phdr$v_pf_ia_64_norecov phdr$r_flags.phdr$r_flagbits.phdr$v_pf_ia_64_norecov
#define phdr$v_fill_1 phdr$r_flags.phdr$r_flagmasks.phdr$v_fill_1
#define phdr$v_pf_maskos phdr$r_flags.phdr$r_flagmasks.phdr$v_pf_maskos
#define phdr$v_pf_maskproc phdr$r_flags.phdr$r_flagmasks.phdr$v_pf_maskproc
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_phdr {
#pragma __nomember_alignment
elf64_word phdr$l_p_type;
__union {
elf64_word phdr$l_p_flags;
__struct {
unsigned phdr$v_pf_x : 1;
unsigned phdr$v_pf_w : 1;
unsigned phdr$v_pf_r : 1;
unsigned phdr$v_pf_fill_3to19 : 17;
unsigned phdr$v_pf_vms_nowrit_reloc : 1;
unsigned phdr$v_pf_vms_initialcode : 1;
unsigned phdr$v_pf_vms_resident : 1;
unsigned phdr$v_pf_vms_vector : 1;
unsigned phdr$v_pf_vms_protect : 1;
unsigned phdr$v_pf_vms_nowrit_fixup : 1;
unsigned phdr$v_pf_vms_short : 1;
unsigned phdr$v_pf_vms_shared : 1;
unsigned phdr$v_pf_fill_24to30 : 3;
unsigned phdr$v_pf_ia_64_norecov : 1;
} phdr$r_flagbits;
__struct {
unsigned phdr$v_fill_1 : 20;
unsigned phdr$v_pf_maskos : 8;
unsigned phdr$v_pf_maskproc : 4;
} phdr$r_flagmasks;
} phdr$r_flags;
elf64_off phdr$q_p_offset;
elf64_addr phdr$pq_p_vaddr;
elf64_addr phdr$pq_p_paddr;
elf64_xword phdr$q_p_filesz;
elf64_xword phdr$q_p_memsz;
elf64_xword phdr$q_p_align;
} elf64_phdr;
#if !defined(__VAXC)
#define phdr$l_p_flags phdr$r_flags.phdr$l_p_flags
#define phdr$v_pf_x phdr$r_flags.phdr$r_flagbits.phdr$v_pf_x
#define phdr$v_pf_w phdr$r_flags.phdr$r_flagbits.phdr$v_pf_w
#define phdr$v_pf_r phdr$r_flags.phdr$r_flagbits.phdr$v_pf_r
#define phdr$v_pf_fill_3to19 phdr$r_flags.phdr$r_flagbits.phdr$v_pf_fill_3to19
#define phdr$v_pf_vms_nowrit_reloc phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_nowrit_reloc
#define phdr$v_pf_vms_initialcode phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_initialcode
#define phdr$v_pf_vms_resident phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_resident
#define phdr$v_pf_vms_vector phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_vector
#define phdr$v_pf_vms_protect phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_protect
#define phdr$v_pf_vms_nowrit_fixup phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_nowrit_fixup
#define phdr$v_pf_vms_short phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_short
#define phdr$v_pf_vms_shared phdr$r_flags.phdr$r_flagbits.phdr$v_pf_vms_shared
#define phdr$v_pf_fill_24to30 phdr$r_flags.phdr$r_flagbits.phdr$v_pf_fill_24to30
#define phdr$v_pf_ia_64_norecov phdr$r_flags.phdr$r_flagbits.phdr$v_pf_ia_64_norecov
#define phdr$v_fill_1 phdr$r_flags.phdr$r_flagmasks.phdr$v_fill_1
#define phdr$v_pf_maskos phdr$r_flags.phdr$r_flagmasks.phdr$v_pf_maskos
#define phdr$v_pf_maskproc phdr$r_flags.phdr$r_flagmasks.phdr$v_pf_maskproc
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
#define PHDR$K_PT_NULL 0
#define PHDR$K_PT_LOAD 1
#define PHDR$K_PT_DYNAMIC 2
#define PHDR$K_PT_INTERP 3
#define PHDR$K_PT_NOTE 4
#define PHDR$K_PT_SHLIB 5
#define PHDR$K_PT_PHDR 6
#define PHDR$K_PT_TLS 7
#define PHDR$K_PT_LOOS 1610612736
#define PHDR$K_PT_HIOS 1879048191
#define PHDR$K_PT_LOPROC 1879048192
#define PHDR$K_PT_HIPROC 2147483647
#define DYNSEG$SC_DT_VMS_LF_CALL_DEBUG 0
#define DYNSEG$M_DT_VMS_LF_CALL_DEBUG 0x1
#define DYNSEG$SC_DT_VMS_LF_NOP0BUFS 1
#define DYNSEG$M_DT_VMS_LF_NOP0BUFS 0x2
#define DYNSEG$SC_DT_VMS_LF_P0IMAGE 2
#define DYNSEG$M_DT_VMS_LF_P0IMAGE 0x4
#define DYNSEG$SC_DT_VMS_LF_MKTHREADS 3
#define DYNSEG$M_DT_VMS_LF_MKTHREADS 0x8
#define DYNSEG$SC_DT_VMS_LF_UPCALLS 4
#define DYNSEG$M_DT_VMS_LF_UPCALLS 0x10
#define DYNSEG$SC_DT_VMS_LF_IMGSTA 5
#define DYNSEG$M_DT_VMS_LF_IMGSTA 0x20
#define DYNSEG$SC_DT_VMS_LF_INITIALIZE 6
#define DYNSEG$M_DT_VMS_LF_INITIALIZE 0x40
#define DYNSEG$SC_DT_VMS_LF_MAIN 7
#define DYNSEG$M_DT_VMS_LF_MAIN 0x80
#define DYNSEG$SC_DT_VMS_LF_UNUSED 8
#define DYNSEG$M_DT_VMS_LF_UNUSED 0x100
#define DYNSEG$SC_DT_VMS_LF_EXE_INIT 9
#define DYNSEG$M_DT_VMS_LF_EXE_INIT 0x200
#define DYNSEG$SC_DT_VMS_LF_TBK_IN_IMG 10
#define DYNSEG$M_DT_VMS_LF_TBK_IN_IMG 0x400
#define DYNSEG$SC_DT_VMS_LF_DBG_IN_IMG 11
#define DYNSEG$M_DT_VMS_LF_DBG_IN_IMG 0x800
#define DYNSEG$SC_DT_VMS_LF_TBK_IN_DSF 12
#define DYNSEG$M_DT_VMS_LF_TBK_IN_DSF 0x1000
#define DYNSEG$SC_DT_VMS_LF_DBG_IN_DSF 13
#define DYNSEG$M_DT_VMS_LF_DBG_IN_DSF 0x2000
#define DYNSEG$SC_DT_VMS_LF_SIGNATURES 14
#define DYNSEG$M_DT_VMS_LF_SIGNATURES 0x4000
#define DYNSEG$SC_DT_VMS_LF_REL_SEG_OFF 15
#define DYNSEG$M_DT_VMS_LF_REL_SEG_OFF 0x8000
#define DYNSEG$SC_DT_VMS_LF_SSI_INCAP 16
#define DYNSEG$M_DT_VMS_LF_SSI_INCAP 0x10000
#define DYNSEG$K_SIZE 16
#define DYNSEG$C_SIZE 16
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_dyn {
#pragma __nomember_alignment
ELF64_SXWORD dynseg$q_d_tag;
__union {
ELF64_XWORD dynseg$q_d_val;
ELF64_ADDR dynseg$pq_d_ptr;
__struct {
unsigned dynseg$v_dt_vms_lf_call_debug : 1;
unsigned dynseg$v_dt_vms_lf_nop0bufs : 1;
unsigned dynseg$v_dt_vms_lf_p0image : 1;
unsigned dynseg$v_dt_vms_lf_mkthreads : 1;
unsigned dynseg$v_dt_vms_lf_upcalls : 1;
unsigned dynseg$v_dt_vms_lf_imgsta : 1;
unsigned dynseg$v_dt_vms_lf_initialize : 1;
unsigned dynseg$v_dt_vms_lf_main : 1;
unsigned dynseg$v_dt_vms_lf_unused : 1;
unsigned dynseg$v_dt_vms_lf_exe_init : 1;
unsigned dynseg$v_dt_vms_lf_tbk_in_img : 1;
unsigned dynseg$v_dt_vms_lf_dbg_in_img : 1;
unsigned dynseg$v_dt_vms_lf_tbk_in_dsf : 1;
unsigned dynseg$v_dt_vms_lf_dbg_in_dsf : 1;
unsigned dynseg$v_dt_vms_lf_signatures : 1;
unsigned dynseg$v_dt_vms_lf_rel_seg_off : 1;
unsigned dynseg$v_dt_vms_lf_ssi_incap : 1;
unsigned dynseg$v_fill_121_ : 7;
} dynseg$r_d_vms_lnkflags;
} dynseg$r_d_un;
} ELF64_DYN;
#if !defined(__VAXC)
#define dynseg$q_d_val dynseg$r_d_un.dynseg$q_d_val
#define dynseg$pq_d_ptr dynseg$r_d_un.dynseg$pq_d_ptr
#define dynseg$v_dt_vms_lf_call_debug dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_call_debug
#define dynseg$v_dt_vms_lf_nop0bufs dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_nop0bufs
#define dynseg$v_dt_vms_lf_p0image dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_p0image
#define dynseg$v_dt_vms_lf_mkthreads dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_mkthreads
#define dynseg$v_dt_vms_lf_upcalls dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_upcalls
#define dynseg$v_dt_vms_lf_imgsta dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_imgsta
#define dynseg$v_dt_vms_lf_initialize dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_initialize
#define dynseg$v_dt_vms_lf_main dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_main
#define dynseg$v_dt_vms_lf_exe_init dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_exe_init
#define dynseg$v_dt_vms_lf_tbk_in_img dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_tbk_in_img
#define dynseg$v_dt_vms_lf_dbg_in_img dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_dbg_in_img
#define dynseg$v_dt_vms_lf_tbk_in_dsf dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_tbk_in_dsf
#define dynseg$v_dt_vms_lf_dbg_in_dsf dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_dbg_in_dsf
#define dynseg$v_dt_vms_lf_signatures dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_signatures
#define dynseg$v_dt_vms_lf_rel_seg_off dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_rel_seg_off
#define dynseg$v_dt_vms_lf_ssi_incap dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_ssi_incap
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _elf64_dyn {
#pragma __nomember_alignment
elf64_sxword dynseg$q_d_tag;
__union {
elf64_xword dynseg$q_d_val;
elf64_addr dynseg$pq_d_ptr;
__struct {
unsigned dynseg$v_dt_vms_lf_call_debug : 1;
unsigned dynseg$v_dt_vms_lf_nop0bufs : 1;
unsigned dynseg$v_dt_vms_lf_p0image : 1;
unsigned dynseg$v_dt_vms_lf_mkthreads : 1;
unsigned dynseg$v_dt_vms_lf_upcalls : 1;
unsigned dynseg$v_dt_vms_lf_imgsta : 1;
unsigned dynseg$v_dt_vms_lf_initialize : 1;
unsigned dynseg$v_dt_vms_lf_main : 1;
unsigned dynseg$v_dt_vms_lf_unused : 1;
unsigned dynseg$v_dt_vms_lf_exe_init : 1;
unsigned dynseg$v_dt_vms_lf_tbk_in_img : 1;
unsigned dynseg$v_dt_vms_lf_dbg_in_img : 1;
unsigned dynseg$v_dt_vms_lf_tbk_in_dsf : 1;
unsigned dynseg$v_dt_vms_lf_dbg_in_dsf : 1;
unsigned dynseg$v_dt_vms_lf_signatures : 1;
unsigned dynseg$v_dt_vms_lf_rel_seg_off : 1;
unsigned dynseg$v_dt_vms_lf_ssi_incap : 1;
unsigned dynseg$v_fill_121_ : 7;
} dynseg$r_d_vms_lnkflags;
} dynseg$r_d_un;
} elf64_dyn;
#if !defined(__VAXC)
#define dynseg$q_d_val dynseg$r_d_un.dynseg$q_d_val
#define dynseg$pq_d_ptr dynseg$r_d_un.dynseg$pq_d_ptr
#define dynseg$v_dt_vms_lf_call_debug dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_call_debug
#define dynseg$v_dt_vms_lf_nop0bufs dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_nop0bufs
#define dynseg$v_dt_vms_lf_p0image dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_p0image
#define dynseg$v_dt_vms_lf_mkthreads dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_mkthreads
#define dynseg$v_dt_vms_lf_upcalls dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_upcalls
#define dynseg$v_dt_vms_lf_imgsta dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_imgsta
#define dynseg$v_dt_vms_lf_initialize dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_initialize
#define dynseg$v_dt_vms_lf_main dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_main
#define dynseg$v_dt_vms_lf_exe_init dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_exe_init
#define dynseg$v_dt_vms_lf_tbk_in_img dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_tbk_in_img
#define dynseg$v_dt_vms_lf_dbg_in_img dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_dbg_in_img
#define dynseg$v_dt_vms_lf_tbk_in_dsf dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_tbk_in_dsf
#define dynseg$v_dt_vms_lf_dbg_in_dsf dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_dbg_in_dsf
#define dynseg$v_dt_vms_lf_signatures dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_signatures
#define dynseg$v_dt_vms_lf_rel_seg_off dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_rel_seg_off
#define dynseg$v_dt_vms_lf_ssi_incap dynseg$r_d_un.dynseg$r_d_vms_lnkflags.dynseg$v_dt_vms_lf_ssi_incap
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
#define DYNSEG$K_DT_NULL 0
#define DYNSEG$K_DT_NEEDED 1
#define DYNSEG$K_DT_STRSZ 10
#define DYNSEG$K_DT_IA_64_PLT_RESERVE 1879048192
#define DYNSEG$K_DT_LOOS 1610612749
#define DYNSEG$K_DT_VMS_SUBTYPE 1610612749
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_1 1610612750
#define DYNSEG$K_DT_VMS_IMGIOCNT 1610612751
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_3 1610612752
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_4 1610612753
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_5 1610612754
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_6 1610612755
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_7 1610612756
#define DYNSEG$K_DT_VMS_LNKFLAGS 1610612757
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_9 1610612758
#define DYNSEG$K_DT_VMS_VIR_MEM_BLK_SIZ 1610612759
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_11 1610612760
#define DYNSEG$K_DT_VMS_IDENT 1610612761
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_13 1610612762
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_14 1610612763
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_15 1610612764
#define DYNSEG$K_DT_VMS_NEEDED_IDENT 1610612765
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_17 1610612766
#define DYNSEG$K_DT_VMS_IMG_RELA_CNT 1610612767
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_19 1610612768
#define DYNSEG$K_DT_VMS_SEG_RELA_CNT 1610612769
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_21 1610612770
#define DYNSEG$K_DT_VMS_FIXUP_RELA_CNT 1610612771
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_23 1610612772
#define DYNSEG$K_DT_VMS_FIXUP_NEEDED 1610612773
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_25 1610612774
#define DYNSEG$K_DT_VMS_SYMVEC_CNT 1610612775
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_27 1610612776
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_28 1610612777
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_29 1610612778
#define DYNSEG$K_DT_VMS_XLATED 1610612779
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_31 1610612780
#define DYNSEG$K_DT_VMS_STACKSIZE 1610612781
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_33 1610612782
#define DYNSEG$K_DT_VMS_UNWINDSZ 1610612783
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_35 1610612784
#define DYNSEG$K_DT_VMS_UNWIND_CODSEG 1610612785
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_37 1610612786
#define DYNSEG$K_DT_VMS_UNWIND_INFOSEG 1610612787
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_39 1610612788
#define DYNSEG$K_DT_VMS_LINKTIME 1610612789
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_41 1610612790
#define DYNSEG$K_DT_VMS_SEG_NO 1610612791
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_43 1610612792
#define DYNSEG$K_DT_VMS_SYMVEC_OFFSET 1610612793
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_45 1610612794
#define DYNSEG$K_DT_VMS_SYMVEC_SEG 1610612795
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_47 1610612796
#define DYNSEG$K_DT_VMS_UNWIND_OFFSET 1610612797
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_49 1610612798
#define DYNSEG$K_DT_VMS_UNWIND_SEG 1610612799
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_51 1610612800
#define DYNSEG$K_DT_VMS_STRTAB_OFFSET 1610612801
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_53 1610612802
#define DYNSEG$K_DT_VMS_SYSVER_OFFSET 1610612803
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_55 1610612804
#define DYNSEG$K_DT_VMS_IMG_RELA_OFF 1610612805
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_57 1610612806
#define DYNSEG$K_DT_VMS_SEG_RELA_OFF 1610612807
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_59 1610612808
#define DYNSEG$K_DT_VMS_FIXUP_RELA_OFF 1610612809
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_61 1610612810
#define DYNSEG$K_DT_VMS_PLTGOT_OFFSET 1610612811
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_63 1610612812
#define DYNSEG$K_DT_VMS_PLTGOT_SEG 1610612813
#define DYNSEG$K_DT_VMS_DTLOOSPLUS_65 1610612814
#define DYNSEG$K_DT_VMS_FPMODE 1610612815
#define DYNSEG$K_DT_VMS_SUBTYPE_CLI 1
#ifdef __NEW_STARLET
typedef struct _vms_ident {
unsigned int identl_minor_id;
unsigned short int identw_major_id;
unsigned char identb_match;
unsigned char identb_unused;
} VMS_IDENT;
#else /* __OLD_STARLET */
typedef struct _vms_ident {
unsigned int identl_minor_id;
unsigned short int identw_major_id;
unsigned char identb_match;
unsigned char identb_unused;
} vms_ident;
#endif /* #ifdef __NEW_STARLET */
#define TBK$K_RECTYPE_HDR32 1
#define TBK$K_RECTYPE_RTN32 2
#define TBK$K_RECTYPE_FIL 3
#define TBK$K_RECTYPE_LN1 4
#define TBK$K_RECTYPE_LN2 5
#define TBK$K_RECTYPE_LN4 6
#define TBK$K_RECTYPE_PC1 7
#define TBK$K_RECTYPE_PC2 8
#define TBK$K_RECTYPE_PC4 9
#define TBK$K_RECTYPE_VERSION 10
#define TBK$K_RECTYPE_HDR64 11
#define TBK$K_RECTYPE_RTN64 12
#define TBK$K_RECTYPE_PC8 13
#ifdef __NEW_STARLET
typedef struct _system_version_array {
unsigned sysver$v_subsystem_mask : 32; /* Bit mask of valid array entries */
SYSVER_MAJMIN sysver$r_system_ver; /* Version of sys$base_image */
SUBSYS_MAJMIN sysver$r_subsys_ver [31]; /* Version of various subsystems */
} SYSTEM_VERSION_ARRAY;
#else /* __OLD_STARLET */
typedef struct _system_version_array {
unsigned sysver$v_subsystem_mask : 32; /* Bit mask of valid array entries */
sysver_majmin sysver$r_system_ver; /* Version of sys$base_image */
subsys_majmin sysver$r_subsys_ver [31]; /* Version of various subsystems */
} system_version_array;
#endif /* #ifdef __NEW_STARLET */
#define SYSVER$K_LENGTH 33
#define SYSVER$C_LENGTH 33
#define IMF$K_SIZE 32
#define IMF$C_SIZE 32
#ifdef __NEW_STARLET
typedef struct _image_fixup {
ELF64_XWORD imf$q_fixup_offset;
ELF64_WORD imf$l_type;
ELF64_WORD imf$l_fixup_seg;
ELF64_SXWORD imf$q_addend;
ELF64_WORD imf$l_symvec_index;
ELF64_WORD imf$l_data_type;
} IMAGE_FIXUP;
#else /* __OLD_STARLET */
typedef struct _image_fixup {
elf64_xword imf$q_fixup_offset;
elf64_word imf$l_type;
elf64_word imf$l_fixup_seg;
elf64_sxword imf$q_addend;
elf64_word imf$l_symvec_index;
elf64_word imf$l_data_type;
} image_fixup;
#endif /* #ifdef __NEW_STARLET */
#define IMR$K_SIZE 40
#define IMR$C_SIZE 40
#ifdef __NEW_STARLET
typedef struct _image_rela {
ELF64_XWORD imr$q_rela_offset;
ELF64_WORD imr$l_type;
ELF64_WORD imr$l_rela_seg;
ELF64_SXWORD imr$q_addend;
ELF64_XWORD imr$q_sym_offset;
ELF64_WORD imr$l_sym_seg;
ELF64_WORD imr$l_fill_1;
} IMAGE_RELA;
#else /* __OLD_STARLET */
typedef struct _image_rela {
elf64_xword imr$q_rela_offset;
elf64_word imr$l_type;
elf64_word imr$l_rela_seg;
elf64_sxword imr$q_addend;
elf64_xword imr$q_sym_offset;
elf64_word imr$l_sym_seg;
elf64_word imr$l_fill_1;
} image_rela;
#endif /* #ifdef __NEW_STARLET */
#define SGR$K_SIZE 32
#define SGR$C_SIZE 32
#ifdef __NEW_STARLET
typedef struct _segment_rela {
ELF64_XWORD sgr$q_rela_offset;
ELF64_WORD sgr$l_type;
ELF64_WORD sgr$l_rela_seg;
ELF64_SXWORD sgr$q_addend;
__union {
ELF64_SXWORD sgr$q_gp_offset;
__struct {
ELF64_WORD sgr$l_symvec_index;
ELF64_WORD sgr$l_needed_index;
} sgr$r_needed_sym;
} sgr$r_symbol_overlay;
} SEGMENT_RELA;
#if !defined(__VAXC)
#define sgr$q_gp_offset sgr$r_symbol_overlay.sgr$q_gp_offset
#define sgr$l_symvec_index sgr$r_symbol_overlay.sgr$r_needed_sym.sgr$l_symvec_index
#define sgr$l_needed_index sgr$r_symbol_overlay.sgr$r_needed_sym.sgr$l_needed_index
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
typedef struct _segment_rela {
elf64_xword sgr$q_rela_offset;
elf64_word sgr$l_type;
elf64_word sgr$l_rela_seg;
elf64_sxword sgr$q_addend;
__union {
elf64_sxword sgr$q_gp_offset;
__struct {
elf64_word sgr$l_symvec_index;
elf64_word sgr$l_needed_index;
} sgr$r_needed_sym;
} sgr$r_symbol_overlay;
} segment_rela;
#if !defined(__VAXC)
#define sgr$q_gp_offset sgr$r_symbol_overlay.sgr$q_gp_offset
#define sgr$l_symvec_index sgr$r_symbol_overlay.sgr$r_needed_sym.sgr$l_symvec_index
#define sgr$l_needed_index sgr$r_symbol_overlay.sgr$r_needed_sym.sgr$l_needed_index
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
#define VMS_FIXUP$K_SIZE 24
#define VMS_FIXUP$C_SIZE 24
#ifdef __NEW_STARLET
typedef struct _vms_fixup {
ELF64_ADDR vms_fixup$pq_offset;
ELF64_SXWORD vms_fixup$q_addend;
ELF64_WORD vms_fixup$l_symindx;
ELF64_WORD vms_fixup$l_type;
} VMS_FIXUP;
#else /* __OLD_STARLET */
typedef struct _vms_fixup {
elf64_addr vms_fixup$pq_offset;
elf64_sxword vms_fixup$q_addend;
elf64_word vms_fixup$l_symindx;
elf64_word vms_fixup$l_type;
} vms_fixup;
#endif /* #ifdef __NEW_STARLET */
#define LNKG$K_SIZE 8
#define LNKG$C_SIZE 8
#ifdef __NEW_STARLET
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _vms_linkages_header {
#pragma __nomember_alignment
ELF64_WORD lnkg$l_type;
ELF64_WORD lnkg$l_decl_count;
} VMS_LINKAGES_HEADER;
#else /* __OLD_STARLET */
#if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */
#pragma __nomember_alignment __quadword
#else
#pragma __nomember_alignment
#endif
typedef struct _vms_linkages_header {
#pragma __nomember_alignment
elf64_word lnkg$l_type;
elf64_word lnkg$l_decl_count;
} vms_linkages_header;
#endif /* #ifdef __NEW_STARLET */
#define LNKG_ENTRY1$K_SIZE 12
#define LNKG_ENTRY1$C_SIZE 12
#ifdef __NEW_STARLET
typedef struct _vms_lnkg_entry1 {
ELF64_WORD lnkg_entry1$l_symidx;
__union {
VMS_LNKG_DESC1 lnkg_entry1$ps_desc;
ELF64_XWORD lnkg_entry1$q_vms_linkage_qw;
} lnkg_entry1$r_lnkg_desc;
} VMS_LNKG_ENTRY1;
#if !defined(__VAXC)
#define lnkg_entry1$ps_desc lnkg_entry1$r_lnkg_desc.lnkg_entry1$ps_desc
#define lnkg_entry1$q_vms_linkage_qw lnkg_entry1$r_lnkg_desc.lnkg_entry1$q_vms_linkage_qw
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
typedef struct _vms_lnkg_entry1 {
elf64_word lnkg_entry1$l_symidx;
__union {
vms_lnkg_desc1 lnkg_entry1$ps_desc;
elf64_xword lnkg_entry1$q_vms_linkage_qw;
} lnkg_entry1$r_lnkg_desc;
} vms_lnkg_entry1;
#if !defined(__VAXC)
#define lnkg_entry1$ps_desc lnkg_entry1$r_lnkg_desc.lnkg_entry1$ps_desc
#define lnkg_entry1$q_vms_linkage_qw lnkg_entry1$r_lnkg_desc.lnkg_entry1$q_vms_linkage_qw
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
#define VMSLNKG$K_VMS_LINKAGE_TYPE1 1
#define VMSLNKG$K_REG_POL_VOL 0
#define VMSLNKG$K_REG_POL_SCR 1
#define VMSLNKG$K_REG_POL_OUT 2
#define VMSLNKG$K_REG_POL_PRE 3
#ifdef __NEW_STARLET
typedef struct _func_descr {
ELF64_ADDR fd$pq_entryva;
ELF64_ADDR fd$pq_gptr;
} FUNC_DESCR;
#else /* __OLD_STARLET */
typedef struct _func_descr {
elf64_addr fd$pq_entryva;
elf64_addr fd$pq_gptr;
} func_descr;
#endif /* #ifdef __NEW_STARLET */
#define UNWIND$K_DESC_VERSION 1
#define UNWIND$M_UNW_LENGTH 0xFFFFFFFF
#define UNWIND$SC_UNW_FLAG_EHANDLER 32
#define UNWIND$M_UNW_FLAG_EHANDLER 0x100000000
#define UNWIND$SC_UNW_FLAG_UHANDLER 33
#define UNWIND$M_UNW_FLAG_UHANDLER 0x200000000
#define UNWIND$M_UNW_FLAG_RSVD_43_34 0xFFC00000000
#define UNWIND$SC_UNW_FLAG_VMS_OSDA 44
#define UNWIND$M_UNW_FLAG_VMS_OSDA 0x100000000000
#define UNWIND$SC_UNW_FLAG_VMS_HANDLER 45
#define UNWIND$M_UNW_FLAG_VMS_HANDLER 0x200000000000
#define UNWIND$SC_UNW_FLAG_MASK 32
#define UNWIND$M_UNW_FLAG_MASK 0xFFFF00000000
#define UNWIND$M_OSMASK_UNUSED 0xFFFFFFFFFFF
#define UNWIND$SC_UNW_FLAG_OSMASK 44
#define UNWIND$M_UNW_FLAG_OSMASK 0xF00000000000
#define UNWIND$M_IVMSMODE_UNUSED 0xFFFFFFFFFFF
#define UNWIND$SC_UNW_IVMS_MODE 44
#define UNWIND$M_UNW_IVMS_MODE 0x300000000000
#define UNWIND$M_VERSION_UNUSED 0xFFFFFFFFFFFF
#define UNWIND$SC_UNW_VERSION 48
#define UNWIND$M_UNW_VERSION 0xFFFF000000000000
#define UNWIND$K_DESC_SIZE 8
#define UNWIND$C_DESC_SIZE 8
#ifdef __NEW_STARLET
typedef struct _exceptn_unwind {
__union {
__struct {
__union {
ELF64_WORD unwind$l_unw_length;
__struct {
unsigned unwind$v_unw_length : 32;
} unwind$r_unw_len_mask;
} unwind$r_unwind_length;
ELF64_HALF unwind$w_unw_flags;
ELF64_HALF unwind$w_unw_version;
} unwind$r_unwind_generic;
__union {
__struct {
unsigned unwind$v_unused_31_0 : 32;
unsigned unwind$v_unw_flag_ehandler : 1;
unsigned unwind$v_unw_flag_uhandler : 1;
unsigned unwind$v_unw_flag_rsvd_43_34 : 10;
unsigned unwind$v_unw_flag_vms_osda : 1;
unsigned unwind$v_unw_flag_vms_handler : 1;
unsigned unwind$v_fill_122_ : 2;
} unwind$r_unwind_flag;
__struct {
unsigned unwind$v_mask_unused : 32;
unsigned unwind$v_unw_flag_mask : 16;
} unwind$r_flags_mask;
__struct {
unsigned unwind$v_osmask_unused_1 : 32;
unsigned unwind$v_osmask_unused_2 : 12;
unsigned unwind$v_unw_flag_osmask : 4;
} unwind$r_flags_osmask;
__struct {
unsigned unwind$v_ivmsmode_unused_1 : 32;
unsigned unwind$v_ivmsmode_unused_2 : 12;
unsigned unwind$v_unw_ivms_mode : 2;
unsigned unwind$v_fill_123_ : 2;
} unwind$r_flags_ivms;
__struct {
unsigned unwind$v_version_unused_1 : 32;
unsigned unwind$v_version_unused_2 : 16;
unsigned unwind$v_unw_version : 16;
} unwind$r_version;
} unwind$r_exc_unwnd_os;
} unwind$r_unwind_desc;
} EXCEPTN_UNWIND;
#if !defined(__VAXC)
#define unwind$l_unw_length unwind$r_unwind_desc.unwind$r_unwind_generic.unwind$r_unwind_length.unwind$l_unw_length
#define unwind$v_unw_length unwind$r_unwind_desc.unwind$r_unwind_generic.unwind$r_unwind_length.unwind$r_unw_len_mask.unwind$v_unw_\
length
#define unwind$w_unw_flags unwind$r_unwind_desc.unwind$r_unwind_generic.unwind$w_unw_flags
#define unwind$w_unw_version unwind$r_unwind_desc.unwind$r_unwind_generic.unwind$w_unw_version
#define unwind$v_unused_31_0 unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unused_31_0
#define unwind$v_unw_flag_ehandler unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unw_flag_ehandler
#define unwind$v_unw_flag_uhandler unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unw_flag_uhandler
#define unwind$v_unw_flag_vms_osda unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unw_flag_vms_osda
#define unwind$v_unw_flag_vms_handler unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unw_flag_vms_handler
#define unwind$v_unw_flag_mask unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_flags_mask.unwind$v_unw_flag_mask
#define unwind$v_unw_flag_osmask unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_flags_osmask.unwind$v_unw_flag_osmask
#define unwind$v_unw_ivms_mode unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_flags_ivms.unwind$v_unw_ivms_mode
#define unwind$v_unw_version unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_version.unwind$v_unw_version
#endif /* #if !defined(__VAXC) */
#else /* __OLD_STARLET */
typedef struct _exceptn_unwind {
__union {
__struct {
__union {
elf64_word unwind$l_unw_length;
__struct {
unsigned unwind$v_unw_length : 32;
} unwind$r_unw_len_mask;
} unwind$r_unwind_length;
elf64_half unwind$w_unw_flags;
elf64_half unwind$w_unw_version;
} unwind$r_unwind_generic;
__union {
__struct {
unsigned unwind$v_unused_31_0 : 32;
unsigned unwind$v_unw_flag_ehandler : 1;
unsigned unwind$v_unw_flag_uhandler : 1;
unsigned unwind$v_unw_flag_rsvd_43_34 : 10;
unsigned unwind$v_unw_flag_vms_osda : 1;
unsigned unwind$v_unw_flag_vms_handler : 1;
unsigned unwind$v_fill_122_ : 2;
} unwind$r_unwind_flag;
__struct {
unsigned unwind$v_mask_unused : 32;
unsigned unwind$v_unw_flag_mask : 16;
} unwind$r_flags_mask;
__struct {
unsigned unwind$v_osmask_unused_1 : 32;
unsigned unwind$v_osmask_unused_2 : 12;
unsigned unwind$v_unw_flag_osmask : 4;
} unwind$r_flags_osmask;
__struct {
unsigned unwind$v_ivmsmode_unused_1 : 32;
unsigned unwind$v_ivmsmode_unused_2 : 12;
unsigned unwind$v_unw_ivms_mode : 2;
unsigned unwind$v_fill_123_ : 2;
} unwind$r_flags_ivms;
__struct {
unsigned unwind$v_version_unused_1 : 32;
unsigned unwind$v_version_unused_2 : 16;
unsigned unwind$v_unw_version : 16;
} unwind$r_version;
} unwind$r_exc_unwnd_os;
} unwind$r_unwind_desc;
} exceptn_unwind;
#if !defined(__VAXC)
#define unwind$l_unw_length unwind$r_unwind_desc.unwind$r_unwind_generic.unwind$r_unwind_length.unwind$l_unw_length
#define unwind$v_unw_length unwind$r_unwind_desc.unwind$r_unwind_generic.unwind$r_unwind_length.unwind$r_unw_len_mask.unwind$v_unw_\
length
#define unwind$w_unw_flags unwind$r_unwind_desc.unwind$r_unwind_generic.unwind$w_unw_flags
#define unwind$w_unw_version unwind$r_unwind_desc.unwind$r_unwind_generic.unwind$w_unw_version
#define unwind$v_unused_31_0 unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unused_31_0
#define unwind$v_unw_flag_ehandler unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unw_flag_ehandler
#define unwind$v_unw_flag_uhandler unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unw_flag_uhandler
#define unwind$v_unw_flag_vms_osda unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unw_flag_vms_osda
#define unwind$v_unw_flag_vms_handler unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_unwind_flag.unwind$v_unw_flag_vms_handler
#define unwind$v_unw_flag_mask unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_flags_mask.unwind$v_unw_flag_mask
#define unwind$v_unw_flag_osmask unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_flags_osmask.unwind$v_unw_flag_osmask
#define unwind$v_unw_ivms_mode unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_flags_ivms.unwind$v_unw_ivms_mode
#define unwind$v_unw_version unwind$r_unwind_desc.unwind$r_exc_unwnd_os.unwind$r_version.unwind$v_unw_version
#endif /* #if !defined(__VAXC) */
#endif /* #ifdef __NEW_STARLET */
#define UNWIND$K_FLAGS_UNUSED0 0
#define UNWIND$K_FLAGS_UNUSED1 1
#define UNWIND$K_FLAGS_SEMANTICS 2
#define UNWIND$K_FLAGS_SEMANTICS_DATA 3
#define UNWIND$K_ABI_UNIX 0
#define UNWIND$K_ABI_HPUX 1
#define UNWIND$K_ABI_WNT 2
#define UNWIND$K_ABI_VMS 3
#define UNWIND$K_HDR_PATTERN 0
#define UNWIND$M_HDR_MASK 128
#define UNWIND$K_R1_PATTERN 0
#define UNWIND$M_R1_MASK 192
#define UNWIND$K_R2_PATTERN 64
#define UNWIND$M_R2_MASK 248
#define UNWIND$K_R3_PATTERN 96
#define UNWIND$M_R3_MASK 252
#define UNWIND$K_P1_PATTERN 128
#define UNWIND$M_P1_MASK 224
#define UNWIND$K_P2_PATTERN 160
#define UNWIND$M_P2_MASK 240
#define UNWIND$K_P3_PATTERN 176
#define UNWIND$M_P3_MASK 248
#define UNWIND$K_P4_PATTERN 184
#define UNWIND$M_P4_MASK 255
#define UNWIND$K_P5_PATTERN 185
#define UNWIND$M_P5_MASK 255
#define UNWIND$K_P6_PATTERN 192
#define UNWIND$M_P6_MASK 224
#define UNWIND$K_P7_PATTERN 224
#define UNWIND$M_P7_MASK 240
#define UNWIND$K_P8_PATTERN 240
#define UNWIND$M_P8_MASK 255
#define UNWIND$K_P9_PATTERN 241
#define UNWIND$M_P9_MASK 255
#define UNWIND$K_P10_PATTERN 255
#define UNWIND$M_P10_MASK 255
#define UNWIND$K_B1_PATTERN 128
#define UNWIND$M_B1_MASK 192
#define UNWIND$K_B2_PATTERN 192
#define UNWIND$M_B2_MASK 224
#define UNWIND$K_B3_PATTERN 224
#define UNWIND$M_B3_MASK 255
#define UNWIND$K_B4_PATTERN 240
#define UNWIND$M_B4_MASK 247
#define UNWIND$K_X1_PATTERN 249
#define UNWIND$M_X1_MASK 255
#define UNWIND$K_X2_PATTERN 250
#define UNWIND$M_X2_MASK 255
#define UNWIND$K_X3_PATTERN 251
#define UNWIND$M_X3_MASK 255
#define UNWIND$K_X4_PATTERN 252
#define UNWIND$M_X4_MASK 255
#define UNWIND$K_P10_ABI_UNIX 0
#define UNWIND$K_P10_ABI_HPUX 1
#define UNWIND$K_P10_ABI_WNT 2
#define UNWIND$K_P10_ABI_VMS 3
#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 /* __ELFDEF_LOADED */
>Awaiting for your reply. At least, provided you are no longer anonymous, I'=
>ll name you the Technical Contributor of this document, either hidden or pu=
>blicly known such as John Reagan who is also a replier to this post is the =
>hidden Technical Contributor of this document at http://vouters.dyndns.org/=
>tima/OpenVMS-Alpha-IA64_Misaligned_pointers.html for his contribution while=
> assembling the related facts.
>
>Yours truly,
>Philippe Vouters (Fontainebleau/France)
--
VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG
Well I speak to machines with the voice of humanity.
More information about the Info-vax
mailing list