+
+struct hdr_struct
+{
+ char hdr_b_strlvl;
+ int hdr_l_arch1;
+ int hdr_l_arch2;
+ int hdr_l_recsiz;
+ char *hdr_t_name;
+ char *hdr_t_version;
+ char *hdr_t_date;
+ char *hdr_c_lnm;
+ char *hdr_c_src;
+ char *hdr_c_ttl;
+ char *hdr_c_cpr;
+};
+
+#define EMH_S_W_HDRTYP 4
+#define EMH_S_B_STRLVL 6
+#define EMH_S_L_ARCH1 8
+#define EMH_S_L_ARCH2 12
+#define EH_S_L_RECSIZ 16
+#define EMH_S_B_NAMLNG 20
+
+#define EMH_DATE_LENGTH 17
+
+/* VMS End-Of-Module records (EOM/EEOM). */
+
+struct eom_struct
+{
+ int eom_l_total_lps;
+ short eom_w_comcod;
+ bfd_boolean eom_has_transfer;
+ char eom_b_tfrflg;
+ int eom_l_psindx;
+ int eom_l_tfradr;
+};
+
+#define EEOM_S_L_TOTAL_LPS 4
+#define EEOM_S_W_COMCOD 8
+#define EEOM_S_B_TFRFLG 10
+#define EEOM_S_L_PSINDX 12
+#define EEOM_S_L_TFRADR 16
+
+/* VMS Image Header Records (IHD/EIHD). */
+
+#define EIHD_S_K_MAJORID 3 /* Major id constant */
+#define EIHD_S_K_MINORID 0 /* Minor id constant */
+#define EIHD_S_K_EXE 1 /* Executable image */
+
+#define EIHD_S_L_SIZE 8
+#define EIHD_S_L_ISDOFF 12
+#define EIHD_S_L_SYMDBGOFF 20
+#define EIHD_S_Q_SYMVVA 40
+#define EIHD_S_L_IMGTYPE 52
+
+/* VMS Image Section Description Records (ISD/EISD). */
+
+#define EISD_S_L_EISDSIZE 8
+#define EISD_S_L_SECSIZE 12
+#define EISD_S_Q_VIR_ADDR 16
+#define EISD_S_L_FLAGS 24
+#define EISD_S_L_VBN 28
+#define EISD_S_R_CONTROL 32
+#define EISD_S_L_IDENT 36
+#define EISD_S_T_GBLNAM 40
+
+#define EISD_S_M_GBL 0x0001
+#define EISD_S_M_CRF 0x0002
+#define EISD_S_M_DZRO 0x0004
+#define EISD_S_M_WRT 0x0008
+#define EISD_S_M_INITALCODE 0x0010
+#define EISD_S_M_BASED 0x0020
+#define EISD_S_M_FIXUPVEC 0x0040
+#define EISD_S_M_RESIDENT 0x0080
+#define EISD_S_M_VECTOR 0x0100
+#define EISD_S_M_PROTECT 0x0200
+#define EISD_S_M_LASTCLU 0x0400
+#define EISD_S_M_EXE 0x0800
+#define EISD_S_M_NONSHRADR 0x1000
+#define EISD_S_M_QUAD_LENGTH 0x2000
+#define EISD_S_M_ALLOC_64BIT 0x4000
+
+/* VMS Image Header Symbol Records (IHS/EIHS). */
+
+#define EIHS_S_L_DSTVBN 8
+#define EIHS_S_L_DSTSIZE 12
+#define EIHS_S_L_GSTVBN 16
+#define EIHS_S_L_GSTSIZE 20
+#define EIHS_S_L_DMTVBN 24
+#define EIHS_S_L_DMTBYTES 28
+
+/* Debugger symbol definitions. */
+
+#define DBG_S_L_DMT_MODBEG 0
+#define DBG_S_L_DST_SIZE 4
+#define DBG_S_W_DMT_PSECT_COUNT 8
+#define DBG_S_C_DMT_HEADER_SIZE 12
+
+#define DBG_S_L_DMT_PSECT_START 0
+#define DBG_S_L_DMT_PSECT_LENGTH 4
+#define DBG_S_C_DMT_PSECT_SIZE 8
+
+
+enum file_format_enum { FF_UNKNOWN, FF_FOREIGN, FF_NATIVE };
+enum file_type_enum { FT_UNKNOWN, FT_MODULE, FT_IMAGE };
+
+typedef struct vms_symbol_struct
+{
+ struct bfd_hash_entry bfd_hash;
+ asymbol *symbol;
+} vms_symbol_entry;
+