/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:50 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:21 $1$DGA7274:[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 /* 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 */