summaryrefslogtreecommitdiffstats
path: root/binutils-2.25/include/vms
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.25/include/vms')
-rw-r--r--binutils-2.25/include/vms/ChangeLog87
-rw-r--r--binutils-2.25/include/vms/dcx.h50
-rw-r--r--binutils-2.25/include/vms/dmt.h48
-rw-r--r--binutils-2.25/include/vms/dsc.h129
-rw-r--r--binutils-2.25/include/vms/dst.h274
-rw-r--r--binutils-2.25/include/vms/eeom.h62
-rw-r--r--binutils-2.25/include/vms/egps.h64
-rw-r--r--binutils-2.25/include/vms/egsd.h60
-rw-r--r--binutils-2.25/include/vms/egst.h39
-rw-r--r--binutils-2.25/include/vms/egsy.h54
-rw-r--r--binutils-2.25/include/vms/eiaf.h80
-rw-r--r--binutils-2.25/include/vms/eicp.h38
-rw-r--r--binutils-2.25/include/vms/eidc.h49
-rw-r--r--binutils-2.25/include/vms/eiha.h54
-rw-r--r--binutils-2.25/include/vms/eihd.h145
-rw-r--r--binutils-2.25/include/vms/eihi.h50
-rw-r--r--binutils-2.25/include/vms/eihs.h62
-rw-r--r--binutils-2.25/include/vms/eihvn.h58
-rw-r--r--binutils-2.25/include/vms/eisd.h118
-rw-r--r--binutils-2.25/include/vms/emh.h79
-rw-r--r--binutils-2.25/include/vms/eobjrec.h48
-rw-r--r--binutils-2.25/include/vms/esdf.h41
-rw-r--r--binutils-2.25/include/vms/esdfm.h49
-rw-r--r--binutils-2.25/include/vms/esdfv.h49
-rw-r--r--binutils-2.25/include/vms/esgps.h72
-rw-r--r--binutils-2.25/include/vms/esrf.h36
-rw-r--r--binutils-2.25/include/vms/etir.h114
-rw-r--r--binutils-2.25/include/vms/internal.h63
-rw-r--r--binutils-2.25/include/vms/lbr.h332
-rw-r--r--binutils-2.25/include/vms/prt.h43
-rw-r--r--binutils-2.25/include/vms/shl.h55
31 files changed, 2502 insertions, 0 deletions
diff --git a/binutils-2.25/include/vms/ChangeLog b/binutils-2.25/include/vms/ChangeLog
new file mode 100644
index 00000000..8d5e91d3
--- /dev/null
+++ b/binutils-2.25/include/vms/ChangeLog
@@ -0,0 +1,87 @@
+2012-03-08 Tristan Gingold <gingold@adacore.com>
+
+ * lbr.h (struct vms_lhd): Add comments.
+
+2010-05-27 Tristan Gingold <gingold@adacore.com>
+
+ * lbr.h: Improve comments.
+
+2010-05-17 Tristan Gingold <gingold@adacore.com>
+
+ * eidc.h: New file.
+ * esgps.h: New file.
+
+2010-05-03 Tristan Gingold <gingold@adacore.com>
+
+ * dmt.h: Improve comments.
+
+2010-04-30 Tristan Gingold <gingold@adacore.com>
+
+ * lbr.h (struct vms_kbn): New structure.
+
+2010-04-30 Tristan Gingold <gingold@adacore.com>
+
+ * lbr.h (LBR__C_TYP_ISHSTB): Added.
+ (LHD_SANEID4): Renamed to ...
+ (LHD_SANEID6): ... this.
+ (LBR_MAJORID, LBR_ELFMAJORID): New macros.
+ (struct vms_rfa): New structure.
+ (struct vms_idxdef): Renamed to ...
+ (struct vms_idx): ... this.
+ (struct vms_idxdef2): Renamed to ...
+ (struct vms_elfidx): ... this.
+ (ELFIDX__WEAK, ELFIDX__GROUP, ELFIDX__LISTRFA, ELFIDX__SYMESC): New
+ macros.
+ (struct vms_lhs, struct vms_lns): New structures.
+ (struct vms_mhd): Add missing fields.
+ (MHD__C_MHDLEN): New macro.
+
+2010-03-31 Tristan Gingold <gingold@adacore.com>
+
+ * dcx.h: New file.
+ * dsc.h: New file.
+ * esdfm.h: New file.
+ * esdfv.h: New file.
+ * internal.h: New file.
+ * lbr.h: New file.
+ * prt.h: New file.
+ * shl.h (struct vms_shl): Add comments.
+ * esrf.h (ESRF__B_NAMLNG): New macro.
+ * esdf.h (ESDF__B_NAMLNG): New macro.
+ * emh.h: Add macros for fields maximum value.
+ * eisd.h (EISD__M_PROTECT): Fix typo in comment.
+ Add macros for offsets, version, section type and match control.
+ Merge vms_eisd_ext into vms_eisd.
+ * eihvn.h (EIHVN__MULTI_PROCESSING_BIT, EIHVN__GALAXY_BIT): Added.
+ * eihs.h: Remove blank line.
+ * eihd.h (struct vms_eihd): Add comments, add image subtype names.
+ * eiha.h (struct vms_eiha): Add inishr and inishr_h fields.
+ * eiaf.h (struct vms_eiaf): Fix base_va size.
+ * egsy.h: Add comments.
+ * egsd.h: Remove blank line.
+ * egps.h: Add flag names.
+ * eeom.h (EEOM__M_WKTFR): Added.
+ * dst.h (DST__K_CXX): Added, and reident languages.
+ (DST__K_SRC_INCRLNUM_B): Added.
+ Indent and order pcline commands.
+ Add record begin/end, enumerations, type specification, value
+ specification, label, discontinue range definitions.
+
+2010-02-17 Tristan Gingold <gingold@adacore.com>
+
+ * dmt.h, dst.h, eeom.h, egps.h, egsd.h, egst.h, egsy.h: New Files.
+ * eiaf.h, eicp.h, eiha.h, eihd.h, eihi.h, eihs.h, eihvn.h: Ditto.
+ * eisd.h, emh.h, eobjrec.h, esdf.h, esrf.h, etir.h, shl.h: Ditto.
+
+Copyright (C) 2010-2012 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff --git a/binutils-2.25/include/vms/dcx.h b/binutils-2.25/include/vms/dcx.h
new file mode 100644
index 00000000..b6f373ab
--- /dev/null
+++ b/binutils-2.25/include/vms/dcx.h
@@ -0,0 +1,50 @@
+/* Alpha VMS external format for DeCompression.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_DCX_H
+#define _VMS_DCX_H
+
+struct vms_dcxmap
+{
+ unsigned char size[4];
+ unsigned char version[2];
+
+ unsigned char pad[2];
+ unsigned char sanity[4];
+ unsigned char flags[4];
+ unsigned char nsubs[2];
+ unsigned char sub0[2];
+};
+
+struct vms_dcxsbm
+{
+ unsigned char size[2];
+ unsigned char min_char;
+ unsigned char max_char;
+ unsigned char escape;
+ unsigned char flags_bits;
+ unsigned char flags[2];
+ unsigned char nodes[2];
+ unsigned char next[2];
+};
+
+#endif /* _VMS_DCX_H */
diff --git a/binutils-2.25/include/vms/dmt.h b/binutils-2.25/include/vms/dmt.h
new file mode 100644
index 00000000..f2aad6e9
--- /dev/null
+++ b/binutils-2.25/include/vms/dmt.h
@@ -0,0 +1,48 @@
+/* Alpha VMS external format of Debug Module Table.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_DMT_H
+#define _VMS_DMT_H
+
+struct vms_dmt_header
+{
+ /* Offset in the DST of the module. */
+ unsigned char modbeg[4];
+
+ /* Size of the DST chunk for this module. */
+ unsigned char size[4];
+
+ /* Number of psect for this module. */
+ unsigned char psect_count[2];
+
+ unsigned char mbz[2];
+};
+
+struct vms_dmt_psect
+{
+ /* Address of the psect. */
+ unsigned char start[4];
+
+ /* Length of the psect. */
+ unsigned char length[4];
+};
+#endif /* _VMS_DMT_H */
diff --git a/binutils-2.25/include/vms/dsc.h b/binutils-2.25/include/vms/dsc.h
new file mode 100644
index 00000000..5a1b0e23
--- /dev/null
+++ b/binutils-2.25/include/vms/dsc.h
@@ -0,0 +1,129 @@
+/* Alpha VMS external format of Descriptors.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_DSC_H
+#define _VMS_DSC_H
+
+/* Descriptors. */
+#define DSC__K_DTYPE_Z 0 /* Unspecified. */
+#define DSC__K_DTYPE_V 1 /* Bit. */
+#define DSC__K_DTYPE_BU 2 /* Byte logical. */
+#define DSC__K_DTYPE_WU 3 /* Word logical. */
+#define DSC__K_DTYPE_LU 4 /* Longword logical. */
+#define DSC__K_DTYPE_QU 5 /* Quadword logical. */
+#define DSC__K_DTYPE_B 6 /* Byte integer. */
+#define DSC__K_DTYPE_W 7 /* Word integer. */
+#define DSC__K_DTYPE_L 8 /* Longword integer. */
+#define DSC__K_DTYPE_Q 9 /* Quadword integer. */
+#define DSC__K_DTYPE_F 10 /* Single-precision floating. */
+#define DSC__K_DTYPE_D 11 /* Double-precision floating. */
+#define DSC__K_DTYPE_FC 12 /* Complex. */
+#define DSC__K_DTYPE_DC 13 /* Double-precision Complex. */
+#define DSC__K_DTYPE_T 14 /* ASCII text string. */
+#define DSC__K_DTYPE_NU 15 /* Numeric string, unsigned. */
+#define DSC__K_DTYPE_NL 16 /* Numeric string, left separate sign. */
+#define DSC__K_DTYPE_NLO 17 /* Numeric string, left overpunched sign. */
+#define DSC__K_DTYPE_NR 18 /* Numeric string, right separate sign. */
+#define DSC__K_DTYPE_NRO 19 /* Numeric string, right overpunched sign. */
+#define DSC__K_DTYPE_NZ 20 /* Numeric string, zoned sign. */
+#define DSC__K_DTYPE_P 21 /* Packed decimal string. */
+#define DSC__K_DTYPE_ZI 22 /* Sequence of instructions. */
+#define DSC__K_DTYPE_ZEM 23 /* Procedure entry mask. */
+#define DSC__K_DTYPE_DSC 24 /* Descriptor, used for arrays of dyn strings. */
+#define DSC__K_DTYPE_OU 25 /* Octaword logical. */
+#define DSC__K_DTYPE_O 26 /* Octaword integer. */
+#define DSC__K_DTYPE_G 27 /* Double precision G floating, 64 bit. */
+#define DSC__K_DTYPE_H 28 /* Quadruple precision floating, 128 bit. */
+#define DSC__K_DTYPE_GC 29 /* Double precision complex, G floating. */
+#define DSC__K_DTYPE_HC 30 /* Quadruple precision complex, H floating. */
+#define DSC__K_DTYPE_CIT 31 /* COBOL intermediate temporary. */
+#define DSC__K_DTYPE_BPV 32 /* Bound Procedure Value. */
+#define DSC__K_DTYPE_BLV 33 /* Bound Label Value. */
+#define DSC__K_DTYPE_VU 34 /* Bit Unaligned. */
+#define DSC__K_DTYPE_ADT 35 /* Absolute Date-Time. */
+#define DSC__K_DTYPE_VT 37 /* Varying Text. */
+#define DSC__K_DTYPE_T2 38 /* 16-bit char. */
+#define DSC__K_DTYPE_VT2 39 /* 16-bit varying char. */
+
+#define DSC__K_CLASS_S 1 /* Fixed-length scalar/string. */
+#define DSC__K_CLASS_D 2 /* Dynamic string. */
+#define DSC__K_CLASS_V 3 /* Reserved. */
+#define DSC__K_CLASS_A 4 /* Contiguous array. */
+#define DSC__K_CLASS_P 5 /* Procedure argument descriptor. */
+#define DSC__K_CLASS_PI 6 /* Procedure incarnation descriptor. */
+#define DSC__K_CLASS_J 7 /* Reserved. */
+#define DSC__K_CLASS_JI 8 /* Obsolete. */
+#define DSC__K_CLASS_SD 9 /* Decimal (scalar) string. */
+#define DSC__K_CLASS_NCA 10 /* Non-contiguous array. */
+#define DSC__K_CLASS_VS 11 /* Varying string. */
+#define DSC__K_CLASS_VSA 12 /* Varying string array. */
+#define DSC__K_CLASS_UBS 13 /* Unaligned bit string. */
+#define DSC__K_CLASS_UBA 14 /* Unaligned bit array. */
+#define DSC__K_CLASS_SB 15 /* String with bounds. */
+#define DSC__K_CLASS_UBSB 16 /* Unaligned bit string with bounds. */
+
+/* Common part. */
+
+struct vms_dsc
+{
+ unsigned char length[2];
+ unsigned char dtype;
+ unsigned char bclass;
+ unsigned char pointer[4];
+};
+
+struct vms_dsc64
+{
+ unsigned char mbo[2];
+ unsigned char dtype;
+ unsigned char bclass;
+ unsigned char mbmo[4];
+ unsigned char length[8];
+ unsigned char pointer[8];
+};
+
+struct vms_dsc_nca
+{
+ unsigned char length[2];
+ unsigned char dtype;
+ unsigned char bclass;
+ unsigned char pointer[4];
+
+ unsigned char scale;
+ unsigned char digits;
+ unsigned char aflags;
+ unsigned char dimct;
+
+ unsigned char arsize[4];
+ unsigned char a0[4];
+};
+
+struct vms_dsc_ubs
+{
+ unsigned char length[2];
+ unsigned char dtype;
+ unsigned char bclass;
+ unsigned char base[4];
+ unsigned char pos[4];
+};
+
+#endif /* _VMS_DSC_H */
diff --git a/binutils-2.25/include/vms/dst.h b/binutils-2.25/include/vms/dst.h
new file mode 100644
index 00000000..231d3970
--- /dev/null
+++ b/binutils-2.25/include/vms/dst.h
@@ -0,0 +1,274 @@
+/* Alpha VMS external format of Debug Symbol Table.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_DST_H
+#define _VMS_DST_H
+
+/* Also available in vms freeware v5.0 debug/alpha_dstrecrds.sdl. */
+
+struct vms_dst_header
+{
+ /* Length. */
+ unsigned char length[2];
+
+ /* Type. */
+ unsigned char type[2];
+};
+
+/* Beginning of module. */
+#define DST__K_MODBEG 188
+
+/* Some well known languages. */
+#define DST__K_MACRO 0
+#define DST__K_BLISS 2
+#define DST__K_C 7
+#define DST__K_ADA 9
+#define DST__K_CXX 15
+
+struct vms_dst_modbeg
+{
+ unsigned char flags;
+ unsigned char unused;
+ unsigned char language[4];
+ unsigned char major[2];
+ unsigned char minor[2];
+ /* Module name ASCIC. */
+ /* Ident name ASCIC. */
+};
+
+/* Routine begin. */
+#define DST__K_RTNBEG 190
+
+struct vms_dst_rtnbeg
+{
+ unsigned char flags;
+
+ /* Address of the code. */
+ unsigned char address[4];
+
+ /* Procedure descriptor address. */
+ unsigned char pd_address[4];
+
+ /* Name: ASCIC */
+};
+
+/* Line number. */
+#define DST__K_LINE_NUM 185
+
+struct vms_dst_pcline
+{
+ unsigned char pcline_command;
+ unsigned char field[4];
+};
+
+#define DST__K_DELTA_PC_W 1
+#define DST__K_INCR_LINUM 2
+#define DST__K_INCR_LINUM_W 3
+#define DST__K_SET_LINUM_INCR 4
+#define DST__K_SET_LINUM_INCR_W 5
+#define DST__K_RESET_LINUM_INCR 6
+#define DST__K_BEG_STMT_MODE 7
+#define DST__K_END_STMT_MODE 8
+#define DST__K_SET_LINUM 9
+#define DST__K_SET_PC 10
+#define DST__K_SET_PC_W 11
+#define DST__K_SET_PC_L 12
+#define DST__K_SET_STMTNUM 13
+#define DST__K_TERM 14
+#define DST__K_TERM_W 15
+#define DST__K_SET_ABS_PC 16
+#define DST__K_DELTA_PC_L 17
+#define DST__K_INCR_LINUM_L 18
+#define DST__K_SET_LINUM_B 19
+#define DST__K_SET_LINUM_L 20
+#define DST__K_TERM_L 21
+
+/* Routine end. */
+#define DST__K_RTNEND 191
+
+struct vms_dst_rtnend
+{
+ unsigned char unused;
+ unsigned char size[4];
+};
+
+/* Prologue. */
+#define DST__K_PROLOG 162
+
+struct vms_dst_prolog
+{
+ unsigned char bkpt_addr[4];
+};
+
+/* Epilog. */
+#define DST__K_EPILOG 127
+
+struct vms_dst_epilog
+{
+ unsigned char flags;
+ unsigned char count[4];
+};
+
+/* Module end. */
+#define DST__K_MODEND 189
+
+/* Block begin. */
+#define DST__K_BLKBEG 176
+
+struct vms_dst_blkbeg
+{
+ unsigned char unused;
+ unsigned char address[4];
+ /* Name ASCIC. */
+};
+
+/* Block end. */
+#define DST__K_BLKEND 177
+
+struct vms_dst_blkend
+{
+ unsigned char unused;
+ unsigned char size[4];
+};
+
+/* Source correlation. */
+#define DST__K_SOURCE 155
+
+#define DST__K_SRC_DECLFILE 1
+#define DST__K_SRC_SETFILE 2
+#define DST__K_SRC_SETREC_L 3
+#define DST__K_SRC_SETREC_W 4
+#define DST__K_SRC_SETLNUM_L 5
+#define DST__K_SRC_SETLNUM_W 6
+#define DST__K_SRC_INCRLNUM_B 7
+#define DST__K_SRC_DEFLINES_W 10
+#define DST__K_SRC_DEFLINES_B 11
+#define DST__K_SRC_FORMFEED 16
+
+struct vms_dst_src_decl_src
+{
+ unsigned char length;
+ unsigned char flags;
+ unsigned char fileid[2];
+ unsigned char rms_cdt[8];
+ unsigned char rms_ebk[4];
+ unsigned char rms_ffb[2];
+ unsigned char rms_rfo;
+ /* Filename ASCIC. */
+};
+
+/* Record begin. */
+#define DST__K_RECBEG 171
+
+struct vms_dst_recbeg
+{
+ unsigned char vflags;
+ unsigned char value[4];
+ /* Filename ASCIC. */
+};
+
+/* Record end. */
+#define DST__K_RECEND 172
+
+/* Enumeration begin. */
+#define DST__K_ENUMBEG 165
+
+/* Enumeration element. */
+#define DST__K_ENUMELT 164
+
+/* Enumeration end. */
+#define DST__K_ENUMEND 166
+
+/* Separate type specification. */
+#define DST__K_SEPTYP 163
+
+/* Type specification. */
+#define DST__K_TYPSPEC 175
+
+#define DST__K_TS_ATOM 1 /* Atomic. */
+#define DST__K_TS_DSC 2 /* VMS Standard descriptor. */
+#define DST__K_TS_IND 3 /* Indirect. */
+#define DST__K_TS_TPTR 4 /* Typed pointer. */
+#define DST__K_TS_PTR 5 /* Pointer. */
+#define DST__K_TS_PIC 6 /* Pictured. */
+#define DST__K_TS_ARRAY 7
+#define DST__K_TS_SET 8
+#define DST__K_TS_SUBRANGE 9 /* Subrange. */
+#define DST__K_TS_ADA_DSC 10 /* Ada descriptor. */
+#define DST__K_TS_FILE 11
+#define DST__K_TS_AREA 12 /* Area (PL/I). */
+#define DST__K_TS_OFFSET 13 /* Offset (PL/I). */
+#define DST__K_TS_NOV_LENG 14 /* Novel Length. */
+#define DST__K_TS_IND_TSPEC 15 /* Internal to debugger. */
+#define DST__K_TS_SELF_REL_LABEL 16 /* Self-relative label (PL/I). */
+#define DST__K_TS_RFA 17 /* (Basic). */
+#define DST__K_TS_TASK 18 /* (Ada). */
+#define DST__K_TS_ADA_ARRAY 19
+#define DST__K_TS_XMOD_IND 20 /* Cross-module indirect type spec. */
+#define DST__K_TS_CONSTRAINED 21 /* (Ada). */
+#define DST__K_TS_MAYBE_CONSTR 22 /* Might-be-constrained (Ada). */
+#define DST__K_TS_DYN_LOV_LENG 23
+#define DST__K_TS_TPTR_D 24 /* Typed pointer to descriptor. */
+#define DST__K_TS_SCAN_TREE 25
+#define DST__K_TS_SCAN_TREEPTR 26
+#define DST__K_TS_INCOMPLETE 27
+#define DST__K_TS_BLISS_BLOCK 28
+#define DST__K_TS_TPTR_64 29
+#define DST__K_TS_PTR_64 30
+#define DST__K_TS_REF 31 /* C++ referenced type. */
+#define DST__K_TS_REF_64 32
+
+/* Value Specification. */
+#define DST__K_VFLAGS_NOVAL 128 /* No value. */
+#define DST__K_VFLAGS_NOTACTIVE 248 /* Not active at current PC. */
+#define DST__K_VFLAGS_UNALLOC 249 /* Not allocated. */
+#define DST__K_VFLAGS_DSC 250 /* Descriptor format. */
+#define DST__K_VFLAGS_TVS 251 /* Trailing value spec. */
+#define DST__K_VS_FOLLOWS 253 /* Value specification follow. */
+#define DST__K_VFLAGS_BITOFFS 255 /* Value is a bit offset. */
+
+/* Vflags fields. */
+#define DST__K_VALKIND_MASK 0x03
+#define DST__K_INDIR 0x04
+#define DST__K_DISP 0x08
+#define DST__K_REGNUM_MASK 0xf0
+#define DST__K_REGNUM_SHIFT 4
+
+#define DST__K_VALKIND_LITERAL 0
+#define DST__K_VALKIND_ADDR 1
+#define DST__K_VALKIND_DESC 2
+#define DST__K_VALKIND_REG 3
+
+/* Label. */
+#define DST__K_LABEL 187
+
+struct vms_dst_label
+{
+ unsigned char unused;
+
+ unsigned char value[4];
+ unsigned char name[1];
+};
+
+/* Discontiguous range. */
+#define DST__K_DIS_RANGE 118
+#endif /* _VMS_DST_H */
diff --git a/binutils-2.25/include/vms/eeom.h b/binutils-2.25/include/vms/eeom.h
new file mode 100644
index 00000000..807e4485
--- /dev/null
+++ b/binutils-2.25/include/vms/eeom.h
@@ -0,0 +1,62 @@
+/* Alpha VMS external format of Extended End Of Module.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EEOM_H
+#define _VMS_EEOM_H
+
+/* Completion flags. */
+#define EEOM__C_SUCCESS 0
+#define EEOM__C_WARNING 1
+#define EEOM__C_ERROR 2
+#define EEOM__C_ABORT 3
+
+struct vms_eeom
+{
+ /* Record type. */
+ unsigned char rectyp[2];
+
+ /* Record size. */
+ unsigned char size[2];
+
+ /* Number of conditional linkage pairs. */
+ unsigned char total_lps[4];
+
+ /* Completion code. */
+ unsigned char comcod[2];
+
+
+ /* Transfer address flags. */
+ unsigned char tfrflg;
+
+ /* Pad for alignment. */
+ unsigned char temp;
+
+ /* Psect of transfer address. */
+ unsigned char psindx[4];
+
+ /* Transfer address. */
+ unsigned char tfradr[8];
+};
+
+#define EEOM__M_WKTFR (1 << 0) /* Transfer address is weak. */
+
+#endif /* _VMS_EEOM_H */
diff --git a/binutils-2.25/include/vms/egps.h b/binutils-2.25/include/vms/egps.h
new file mode 100644
index 00000000..e92df810
--- /dev/null
+++ b/binutils-2.25/include/vms/egps.h
@@ -0,0 +1,64 @@
+/* Alpha VMS external format of Extended Program Section Definition.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EGPS_H
+#define _VMS_EGPS_H
+
+struct vms_egps
+{
+ /* Entry type. */
+ unsigned char gsdtyp[2];
+
+ /* Length of the entry. */
+ unsigned char gsdsiz[2];
+
+ /* Psect alignment. */
+ unsigned char align;
+
+ /* Pad for alignment. */
+ unsigned char temp;
+
+ unsigned char flags[2];
+
+ /* Length of this contribution. */
+ unsigned char alloc[4];
+
+ /* Name. */
+ unsigned char namlng;
+ unsigned char name[31];
+};
+
+#define EGPS__V_PIC (1 << 0) /* Not meaningful. */
+#define EGPS__V_LIB (1 << 1) /* Defined in a shareable image. */
+#define EGPS__V_OVR (1 << 2) /* Overlaid contribution. */
+#define EGPS__V_REL (1 << 3) /* Relocatable. */
+#define EGPS__V_GBL (1 << 4) /* Global. */
+#define EGPS__V_SHR (1 << 5) /* Shareable. */
+#define EGPS__V_EXE (1 << 6) /* Executable. */
+#define EGPS__V_RD (1 << 7) /* Readable. */
+#define EGPS__V_WRT (1 << 8) /* Writable. */
+#define EGPS__V_VEC (1 << 9) /* Change mode dispatch or message vectors. */
+#define EGPS__V_NOMOD (1 << 10) /* Demand-zero. */
+#define EGPS__V_COM (1 << 11) /* Conditional storage. */
+#define EGPS__V_ALLOC_64BIT (1 << 12) /* Allocated in 64-bit space. */
+
+#endif /* _VMS_EGPS_H */
diff --git a/binutils-2.25/include/vms/egsd.h b/binutils-2.25/include/vms/egsd.h
new file mode 100644
index 00000000..f9be3981
--- /dev/null
+++ b/binutils-2.25/include/vms/egsd.h
@@ -0,0 +1,60 @@
+/* Alpha VMS external format of Extended Global Symbol Directory.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EGSD_H
+#define _VMS_EGSD_H
+
+#define EGSD__K_ENTRIES 2 /* Offset to first entry in record. */
+#define EGSD__C_ENTRIES 2 /* Offset to first entry in record. */
+#define EGSD__C_PSC 0 /* Psect definition. */
+#define EGSD__C_SYM 1 /* Symbol specification. */
+#define EGSD__C_IDC 2 /* Random entity check. */
+#define EGSD__C_SPSC 5 /* Shareable image psect definition. */
+#define EGSD__C_SYMV 6 /* Vectored (dual-valued) versions of SYM. */
+#define EGSD__C_SYMM 7 /* Masked versions of SYM. */
+#define EGSD__C_SYMG 8 /* EGST - gst version of SYM. */
+#define EGSD__C_MAXRECTYP 8 /* Maximum entry type defined. */
+
+struct vms_egsd
+{
+ /* Record type. */
+ unsigned char rectyp[2];
+
+ /* Record size. */
+ unsigned char recsiz[2];
+
+ /* Padding for alignment. */
+ unsigned char alignlw[4];
+
+ /* Followed by egsd entries. */
+};
+
+struct vms_egsd_entry
+{
+ /* Entry type. */
+ unsigned char gsdtyp[2];
+
+ /* Length of the entry. */
+ unsigned char gsdsiz[2];
+};
+
+#endif /* _VMS_EGSD_H */
diff --git a/binutils-2.25/include/vms/egst.h b/binutils-2.25/include/vms/egst.h
new file mode 100644
index 00000000..d4244842
--- /dev/null
+++ b/binutils-2.25/include/vms/egst.h
@@ -0,0 +1,39 @@
+/* Alpha VMS external format of Extended Global Symbol Definition.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EGST_H
+#define _VMS_EGST_H
+
+struct vms_egst
+{
+ struct vms_egsy header;
+
+ unsigned char value[8];
+ unsigned char lp_1[8];
+ unsigned char lp_2[8];
+
+ unsigned char psindx[4];
+ unsigned char namlng;
+ unsigned char name[31];
+};
+
+#endif /* _VMS_EGST_H */
diff --git a/binutils-2.25/include/vms/egsy.h b/binutils-2.25/include/vms/egsy.h
new file mode 100644
index 00000000..dd36ab21
--- /dev/null
+++ b/binutils-2.25/include/vms/egsy.h
@@ -0,0 +1,54 @@
+/* Alpha VMS external format of Extended Global Symbol.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EGSY_H
+#define _VMS_EGSY_H
+
+#define EGSY__W_FLAGS 6
+
+#define EGSY__V_WEAK 0x0001 /* Weak symbol definition. */
+#define EGSY__V_DEF 0x0002 /* Symbol definition. */
+#define EGSY__V_UNI 0x0004 /* Reserved. */
+#define EGSY__V_REL 0x0008 /* Relocatable (vs absolute). */
+#define EGSY__V_COMM 0x0010 /* Conditional symbol def. */
+#define EGSY__V_VECEP 0x0020 /* Reserved. */
+#define EGSY__V_NORM 0x0040 /* Normal procedure definition. */
+#define EGSY__V_QUAD_VAL 0x0080 /* Value exceed 32 bits. */
+
+struct vms_egsy
+{
+ /* Entry type. */
+ unsigned char gsdtyp[2];
+
+ /* Length of the entry. */
+ unsigned char gsdsiz[2];
+
+ /* Data type. */
+ unsigned char datyp;
+
+ /* Pad for alignment. */
+ unsigned char temp;
+
+ unsigned char flags[2];
+};
+
+#endif /* _VMS_EGSY_H */
diff --git a/binutils-2.25/include/vms/eiaf.h b/binutils-2.25/include/vms/eiaf.h
new file mode 100644
index 00000000..c3c39884
--- /dev/null
+++ b/binutils-2.25/include/vms/eiaf.h
@@ -0,0 +1,80 @@
+/* Alpha VMS external format of Extended Image Activator Fixup section.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EIAF_H
+#define _VMS_EIAF_H
+
+struct vms_eiaf
+{
+ /* Version. */
+ unsigned char majorid[4];
+ unsigned char minorid[4];
+
+ /* Link for image activator use. */
+ unsigned char iaflink[8];
+
+ /* Link for sharable image fixups. */
+ unsigned char fixuplnk[8];
+
+ /* Size of EIAF fixed part. */
+ unsigned char size[4];
+
+ /* Flags. */
+ unsigned char flags[4];
+
+ /* Offsets to quadword and longword relocation fixup data. */
+ unsigned char qrelfixoff[4];
+ unsigned char lrelfixoff[4];
+
+ /* Offsets to quardword and longword .address fixup data. */
+ unsigned char qdotadroff[4];
+ unsigned char ldotadroff[4];
+
+ /* Offset to code address fixup data. */
+ unsigned char codeadroff[4];
+
+ /* Offset to linkage part fixup data. */
+ unsigned char lpfixoff[4];
+
+ /* Offset to isect change protection data. */
+ unsigned char chgprtoff[4];
+
+ /* Offset to shareable image list. */
+ unsigned char shlstoff[4];
+
+ /* Number of shareable images. */
+ unsigned char shrimgcnt[4];
+
+ /* Number of extra shareable images allowed. */
+ unsigned char shlextra[4];
+
+ /* Permanent shareable image context. */
+ unsigned char permctx[4];
+
+ /* Base address of the image itself. */
+ unsigned char base_va[4];
+
+ /* Offset to linkage pair with procedure signature fixups. */
+ unsigned char lppsbfixoff[4];
+};
+
+#endif /* _VMS_EIAF_H */
diff --git a/binutils-2.25/include/vms/eicp.h b/binutils-2.25/include/vms/eicp.h
new file mode 100644
index 00000000..9c769f76
--- /dev/null
+++ b/binutils-2.25/include/vms/eicp.h
@@ -0,0 +1,38 @@
+/* Alpha VMS external format of Extended Image section Change Protection.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EICP_H
+#define _VMS_EICP_H
+
+struct vms_eicp
+{
+ /* Start of section. */
+ unsigned char baseva[8];
+
+ /* Size in bytes of the image section. */
+ unsigned char size[4];
+
+ /* New protections. */
+ unsigned char newprt[4];
+};
+
+#endif /* _VMS_EICP_H */
diff --git a/binutils-2.25/include/vms/eidc.h b/binutils-2.25/include/vms/eidc.h
new file mode 100644
index 00000000..987e8c24
--- /dev/null
+++ b/binutils-2.25/include/vms/eidc.h
@@ -0,0 +1,49 @@
+/* Alpha VMS external format of Ident Consistency check.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EIDC_H
+#define _VMS_EIDC_H
+
+struct vms_eidc
+{
+ /* Record type. */
+ unsigned char rectyp[2];
+
+ /* Record size. */
+ unsigned char recsiz[2];
+
+ unsigned char flags[4];
+
+ /* Entity name (ASCIC). */
+ /* Object name (ASCIC). */
+ /* Ident string (ASCIC or binary BINIDENT set). */
+ unsigned char name[1];
+};
+
+/* Fields of flags. */
+#define EIDC__V_BINIDENT (1 << 0) /* Ident is a longword. */
+#define EIDC__V_IDMATCH_SH 1 /* Ident match control. */
+#define EIDC__V_IDMATCH_MASK 3
+#define EIDC__V_ERRSEV_SH 3 /* Error severity. */
+#define EIDC__V_ERRSEV_MASK 7
+
+#endif /* _VMS_EIDC_H */
diff --git a/binutils-2.25/include/vms/eiha.h b/binutils-2.25/include/vms/eiha.h
new file mode 100644
index 00000000..5965ef97
--- /dev/null
+++ b/binutils-2.25/include/vms/eiha.h
@@ -0,0 +1,54 @@
+/* Alpha VMS external format of Extended Image Activation.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EIHA_H
+#define _VMS_EIHA_H
+
+struct vms_eiha
+{
+ /* Size of the struct. */
+ unsigned char size[4];
+
+ unsigned char spare[4];
+
+ /* First transfer address. */
+ unsigned char tfradr1[4];
+ unsigned char tfradr1_h[4];
+
+ /* Second. */
+ unsigned char tfradr2[4];
+ unsigned char tfradr2_h[4];
+
+ /* Third. */
+ unsigned char tfradr3[4];
+ unsigned char tfradr3_h[4];
+
+ /* Fourth (must be 0). */
+ unsigned char tfradr4[4];
+ unsigned char tfradr4_h[4];
+
+ /* Shared image initialization (only if EIHD__V_INISHR is set). */
+ unsigned char inishr[4];
+ unsigned char inishr_h[4];
+};
+
+#endif /* _VMS_EIHA_H */
diff --git a/binutils-2.25/include/vms/eihd.h b/binutils-2.25/include/vms/eihd.h
new file mode 100644
index 00000000..fdb3a6ec
--- /dev/null
+++ b/binutils-2.25/include/vms/eihd.h
@@ -0,0 +1,145 @@
+/* Alpha VMS external format of Extended Image Header.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EIHD_H
+#define _VMS_EIHD_H
+
+/* Extended Image Header (eihd) structure. */
+struct vms_eihd
+{
+ /* Version of this EIHD. */
+ unsigned char majorid[4];
+ unsigned char minorid[4];
+
+ /* Size in bytes of the header. */
+ unsigned char size[4];
+
+ /* Byte offset to ISD (Image Section Descriptors) list. */
+ unsigned char isdoff[4];
+
+ /* Byte offset to activation data (off=16). */
+ unsigned char activoff[4];
+
+ /* Byte offset to symbol table and debugging data. */
+ unsigned char symdbgoff[4];
+
+ /* Byte offset to image ident. */
+ unsigned char imgidoff[4];
+
+ /* Byte offset to patch data. */
+ unsigned char patchoff[4];
+
+ /* RVA of fixup info (off=32). */
+ unsigned char iafva[8];
+
+ /* RVA of symbol vector. */
+ unsigned char symvva[8];
+
+ /* Byte offset to version number array (off=48). */
+ unsigned char version_array_off[4];
+
+ /* Image type. */
+ unsigned char imgtype[4];
+
+ /* Image subtype. */
+ unsigned char subtype[4];
+
+ /* Size in bytes of image I/O section requested. */
+ unsigned char imgiocnt[4];
+
+ /* Nbr of channels requested (off=64). */
+ unsigned char iochancnt[4];
+
+ /* Requested privilege mask. */
+ unsigned char privreqs[8];
+
+ /* Number of header diskblocks. */
+ unsigned char hdrblkcnt[4];
+
+ /* Linker produced image flags. */
+ unsigned char lnkflags[4];
+
+ /* GBL SEC ident value for linkable image. */
+ unsigned char ident[4];
+
+ /* SYS$K_VERSION or 0 if not linked with exec. */
+ unsigned char sysver[4];
+
+ /* Linker match control. */
+ unsigned char matchctl;
+ unsigned char fill_1[3];
+
+ /* Size of the symbol vector in bytes. */
+ unsigned char symvect_size[4];
+
+ /* Value of /BPAGE. */
+ unsigned char virt_mem_block_size[4];
+
+ /* Byte offset to extended fixup data. */
+ unsigned char ext_fixup_off[4];
+
+ /* Byte offset to no_optimize psect table. */
+ unsigned char noopt_psect_off[4];
+
+ unsigned char fill_2[398];
+
+ /* CODE identifies image type to MOM. */
+ unsigned char alias[2];
+};
+
+#define EIHD__K_MAJORID 3 /* Major id constant */
+#define EIHD__K_MINORID 0 /* Minor id constant */
+
+/* Image type. */
+#define EIHD__K_EXE 1 /* Executable image */
+#define EIHD__K_LIM 2 /* Linkable image. */
+
+/* Image subtype. */
+#define EIHD__C_NATIVE 0 /* Alpha native image. */
+#define EIHD__C_CLI 1 /* Image is a CLI, run LOGINOUT. */
+
+/* Linker image flags. */
+#define EIHD__M_LNKDEBUG 0x0001 /* Full debugging requested. */
+#define EIHD__M_LNKNOTFR 0x0002 /* No first transfer address. */
+#define EIHD__M_NOP0BUFS 0x0004 /* No RMS use of P0 for image I/O. */
+#define EIHD__M_PICIMG 0x0008 /* PIC image. */
+#define EIHD__M_P0IMAGE 0x0010 /* P0 only image. */
+#define EIHD__M_DBGDMT 0x0020 /* Image header has dmt fields. */
+#define EIHD__M_INISHR 0x0040 /* Transfer array contains LNISHR. */
+#define EIHD__M_XLATED 0x0080 /* Translated image. */
+#define EIHD__M_BIND_CODE_SEC 0x0100 /* EXE sect can be put into S0. */
+#define EIHD__M_BIND_DATA_SEC 0x0200 /* DATA sect can be put into S0. */
+#define EIHD__M_MKTHREADS 0x0400 /* Multiple kernel threads. */
+#define EIHD__M_UPCALLS 0x0800 /* Upcalls enabled. */
+#define EIHD__M_OMV_READY 0x1000 /* Can be processed by OMV. */
+#define EIHD__M_EXT_BIND_SECT 0x2000 /* May be moved, using ext fixups. */
+
+/* Offsets of some fields. */
+#define EIHD__L_SIZE 8
+#define EIHD__L_ISDOFF 12
+#define EIHD__L_SYMDBGOFF 20
+#define EIHD__Q_SYMVVA 40
+#define EIHD__L_IMGTYPE 52
+
+#define EIHD__C_LENGTH 104
+
+#endif /* _VMS_EIHD_H */
diff --git a/binutils-2.25/include/vms/eihi.h b/binutils-2.25/include/vms/eihi.h
new file mode 100644
index 00000000..97d3d895
--- /dev/null
+++ b/binutils-2.25/include/vms/eihi.h
@@ -0,0 +1,50 @@
+/* Alpha VMS external format of Extended Image Identification.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EIHI_H
+#define _VMS_EIHI_H
+
+#define EIHI__K_MAJORID 1
+#define EIHI__K_MINORID 2
+
+struct vms_eihi
+{
+ unsigned char majorid[4];
+ unsigned char minorid[4];
+
+ /* Time when this image was linked. */
+ unsigned char linktime[8];
+
+ /* Image name. */
+ unsigned char imgnam[40];
+
+ /* Image ident. */
+ unsigned char imgid[16];
+
+ /* Linker ident. */
+ unsigned char linkid[16];
+
+ /* Image build ident. */
+ unsigned char imgbid[16];
+};
+
+#endif /* _VMS_EIHI_H */
diff --git a/binutils-2.25/include/vms/eihs.h b/binutils-2.25/include/vms/eihs.h
new file mode 100644
index 00000000..cf048b13
--- /dev/null
+++ b/binutils-2.25/include/vms/eihs.h
@@ -0,0 +1,62 @@
+/* Alpha VMS external format of Extended Image Symbols and debug table.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EIHS_H
+#define _VMS_EIHS_H
+
+#define EIHS__K_MAJORID 1
+#define EIHS__K_MINORID 1
+
+struct vms_eihs
+{
+ unsigned char majorid[4];
+ unsigned char minorid[4];
+
+ /* Debug symbol table virtual block number (vbn). */
+ unsigned char dstvbn[4];
+
+ /* Debug symbol table size. */
+ unsigned char dstsize[4];
+
+ /* Global symbol table vbn. */
+ unsigned char gstvbn[4];
+
+ /* Global symtol table size. */
+ unsigned char gstsize[4];
+
+ /* Debug module table vbn. */
+ unsigned char dmtvbn[4];
+
+ /* Debug module table size. */
+ unsigned char dmtsize[4];
+};
+
+/* Various offsets. */
+
+#define EIHS__L_DSTVBN 8
+#define EIHS__L_DSTSIZE 12
+#define EIHS__L_GSTVBN 16
+#define EIHS__L_GSTSIZE 20
+#define EIHS__L_DMTVBN 24
+#define EIHS__L_DMTBYTES 28
+
+#endif /* _VMS_EIHS_H */
diff --git a/binutils-2.25/include/vms/eihvn.h b/binutils-2.25/include/vms/eihvn.h
new file mode 100644
index 00000000..07f9eeed
--- /dev/null
+++ b/binutils-2.25/include/vms/eihvn.h
@@ -0,0 +1,58 @@
+/* Alpha VMS external format of Extended Image Header Version.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EIHVN_H
+#define _VMS_EIHVN_H
+
+struct vms_eihvn
+{
+ unsigned char subsystem_mask[4];
+};
+
+struct vms_eihvn_subversion
+{
+ unsigned char minor[2];
+ unsigned char major[2];
+};
+
+#define EIHVN__BASE_IMAGE_BIT 0
+#define EIHVN__MEMORY_MANAGEMENT_BIT 1
+#define EIHVN__IO_BIT 2
+#define EIHVN__FILES_VOLUMES_BIT 3
+#define EIHVN__PROCESS_SCHED_BIT 4
+#define EIHVN__SYSGEN_BIT 5
+#define EIHVN__CLUSTERS_LOCKMGR_BIT 6
+#define EIHVN__LOGICAL_NAMES_BIT 7
+#define EIHVN__SECURITY_BIT 8
+#define EIHVN__IMAGE_ACTIVATOR_BIT 9
+#define EIHVN__NETWORKS_BIT 10
+#define EIHVN__COUNTERS_BIT 11
+#define EIHVN__STABLE_BIT 12
+#define EIHVN__MISC_BIT 13
+#define EIHVN__CPU_BIT 14
+#define EIHVN__VOLATILE_BIT 15
+#define EIHVN__SHELL_BIT 16
+#define EIHVN__POSIX_BIT 17
+#define EIHVN__MULTI_PROCESSING_BIT 18
+#define EIHVN__GALAXY_BIT 19
+
+#endif /* _VMS_EIHVN_H */
diff --git a/binutils-2.25/include/vms/eisd.h b/binutils-2.25/include/vms/eisd.h
new file mode 100644
index 00000000..7579e72b
--- /dev/null
+++ b/binutils-2.25/include/vms/eisd.h
@@ -0,0 +1,118 @@
+/* Alpha VMS external format of Extended Image Section Descriptor.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EISD_H
+#define _VMS_EISD_H
+
+/* Flags. */
+#define EISD__M_GBL 0x0001 /* Global. */
+#define EISD__M_CRF 0x0002 /* Copy on reference. */
+#define EISD__M_DZRO 0x0004 /* Demand zero page. */
+#define EISD__M_WRT 0x0008 /* Writable. */
+#define EISD__M_INITALCODE 0x0010 /* Part of initialization code. */
+#define EISD__M_BASED 0x0020 /* Isect is based. */
+#define EISD__M_FIXUPVEC 0x0040 /* Isect is fixup section. */
+#define EISD__M_RESIDENT 0x0080 /* Isect is memory resident. */
+#define EISD__M_VECTOR 0x0100 /* Vector contained in isect. */
+#define EISD__M_PROTECT 0x0200 /* Isect is protected. */
+#define EISD__M_LASTCLU 0x0400 /* Last cluster. */
+#define EISD__M_EXE 0x0800 /* Code isect. */
+#define EISD__M_NONSHRADR 0x1000 /* Contains non-shareable data. */
+#define EISD__M_QUAD_LENGTH 0x2000 /* Quad length field valid. */
+#define EISD__M_ALLOC_64BIT 0x4000 /* Allocate 64-bit space. */
+
+#define EISD__K_LEN 36
+#define EISD__K_LENEND 12 /* For end marker or next block. */
+#define EISD__K_MAXLENGLBL 84
+
+#define EISD__K_GBLNAMLEN 44 /* Size of the field. */
+
+struct vms_eisd
+{
+ unsigned char majorid[4];
+ unsigned char minorid[4];
+
+ /* Size (in bytes) of this eisd. */
+ unsigned char eisdsize[4];
+
+ /* Size (in bytes) of the section. */
+ unsigned char secsize[4];
+
+ /* Virtual address of the section. */
+ unsigned char virt_addr[8];
+
+ /* Flags. */
+ unsigned char flags[4];
+
+ /* Base virtual block number. */
+ unsigned char vbn[4];
+
+ /* Page fault cluster. */
+ unsigned char pfc;
+
+ /* Linker match control. */
+ unsigned char matchctl;
+
+ /* Section type. */
+ unsigned char type;
+
+ unsigned char fill_1;
+
+ /* End of structure for normal records. */
+
+ /* Ident for global section. */
+ unsigned char ident[4];
+
+ /* Global name ascic. First 8 bytes are quad length field. */
+ unsigned char gblnam[EISD__K_GBLNAMLEN];
+};
+
+/* Versions. */
+#define EISD__K_MAJORID 1
+#define EISD__K_MINORID 1
+
+/* Match control. */
+#define EISD__K_MATALL 0 /* Match always. */
+#define EISD__K_MATEQU 1 /* Match if equal. */
+#define EISD__K_MATLEQ 2 /* Match if less or equal. */
+#define EISD__K_MATNEV 3 /* Match never. */
+
+/* Section type. */
+#define EISD__K_NORMAL 0 /* Normal program image section. */
+#define EISD__K_SHRFXD 1 /* Shareable fixed section. */
+#define EISD__K_PRVFXD 2 /* Private fixed section. */
+#define EISD__K_SHRPIC 3 /* Shareable pic section. */
+#define EISD__K_PRVPIC 4 /* Private PIC section. */
+#define EISD__K_USRSTACK 253 /* User stack section. */
+
+/* EISD offsets. */
+
+#define EISD__L_EISDSIZE 8
+#define EISD__L_SECSIZE 12
+#define EISD__Q_VIR_ADDR 16
+#define EISD__L_FLAGS 24
+#define EISD__L_VBN 28
+#define EISD__R_CONTROL 32
+#define EISD__L_IDENT 36
+#define EISD__T_GBLNAM 40
+
+#endif /* _VMS_EISD_H */
diff --git a/binutils-2.25/include/vms/emh.h b/binutils-2.25/include/vms/emh.h
new file mode 100644
index 00000000..973d71ea
--- /dev/null
+++ b/binutils-2.25/include/vms/emh.h
@@ -0,0 +1,79 @@
+/* Alpha VMS external format of Extended Module Header.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EMH_H
+#define _VMS_EMH_H
+
+#define EMH__C_MHD 0 /* Main header record. */
+#define EMH__C_LNM 1 /* Language name and version. */
+#define EMH__C_SRC 2 /* Source file specification. */
+#define EMH__C_TTL 3 /* Title text of module. */
+#define EMH__C_CPR 4 /* Copyright notice. */
+#define EMH__C_MTC 5 /* Maintenance status. */
+#define EMH__C_GTX 6 /* General text. */
+#define EMH__C_MAXHDRTYP 6 /* Maximum allowable type. */
+
+struct vms_emh_common
+{
+ /* Record type. */
+ unsigned char rectyp[2];
+
+ /* Record size. */
+ unsigned char size[2];
+
+ /* Subtype. */
+ unsigned char subtyp[2];
+};
+
+struct vms_emh_mhd
+{
+ struct vms_emh_common common;
+
+ unsigned char strlvl;
+
+ unsigned char temp;
+
+ unsigned char arch1[4];
+ unsigned char arch2[4];
+
+ unsigned char recsiz[4];
+
+ /* Module name: ASCIC. */
+ /* Module version: ASCIC. */
+ /* Compile data: ASCIC. */
+};
+
+#define EOBJ__C_MAXRECSIZ 8192 /* Maximum legal record size. */
+#define EOBJ__C_STRLVL 2 /* Structure level. */
+#define EOBJ__C_SYMSIZ 64 /* Maximum symbol length. */
+#define EOBJ__C_SECSIZ 31 /* Maximum section name length. */
+#define EOBJ__C_STOREPLIM -1 /* Maximum repeat count on store commands. */
+#define EOBJ__C_PSCALILIM 16 /* Maximum p-sect alignment. */
+
+struct vms_emh_lnm
+{
+ struct vms_emh_common common;
+
+ /* Language processor name: ASCII. */
+};
+
+#endif /* _VMS_EMH_H */
diff --git a/binutils-2.25/include/vms/eobjrec.h b/binutils-2.25/include/vms/eobjrec.h
new file mode 100644
index 00000000..985fda78
--- /dev/null
+++ b/binutils-2.25/include/vms/eobjrec.h
@@ -0,0 +1,48 @@
+/* Alpha VMS external format of Extended Object Records.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_EOBJREC_H
+#define _VMS_EOBJREC_H
+
+#define EOBJ__C_EMH 8 /* EVAX mdule header record. */
+#define EOBJ__C_EEOM 9 /* EVAX ed of module record. */
+#define EOBJ__C_EGSD 10 /* EVAX gobal symbol definition record. */
+#define EOBJ__C_ETIR 11 /* EVAX txt information record. */
+#define EOBJ__C_EDBG 12 /* EVAX Dbugger information record. */
+#define EOBJ__C_ETBT 13 /* EVAX Taceback information record. */
+#define EOBJ__C_MAXRECTYP 13 /* EVAX Lst assigned record type. */
+
+struct vms_eobjrec
+{
+ /* Record type. */
+ unsigned char rectyp[2];
+
+ /* Record size. */
+ unsigned char size[2];
+
+#if 0
+ /* Record subtype. */
+ unsigned char subtyp[2];
+#endif
+};
+
+#endif /* _VMS_EOBJREC_H */
diff --git a/binutils-2.25/include/vms/esdf.h b/binutils-2.25/include/vms/esdf.h
new file mode 100644
index 00000000..79ee3d61
--- /dev/null
+++ b/binutils-2.25/include/vms/esdf.h
@@ -0,0 +1,41 @@
+/* Alpha VMS external format of Extended GSD Global Symbol Definition.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_ESDF_H
+#define _VMS_ESDF_H
+
+struct vms_esdf
+{
+ struct vms_egsy header;
+
+ unsigned char value[8];
+ unsigned char code_address[8];
+ unsigned char ca_psindx[4];
+
+ unsigned char psindx[4];
+ unsigned char namlng;
+ unsigned char name[31];
+};
+
+#define ESDF__B_NAMLNG 32
+
+#endif /* _VMS_ESDF_H */
diff --git a/binutils-2.25/include/vms/esdfm.h b/binutils-2.25/include/vms/esdfm.h
new file mode 100644
index 00000000..e00e44a1
--- /dev/null
+++ b/binutils-2.25/include/vms/esdfm.h
@@ -0,0 +1,49 @@
+/* Alpha VMS external format of Extended Symbol Definition for version Mask.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_ESDFM_H
+#define _VMS_ESDFM_H
+
+struct vms_esdfm
+{
+ /* Entry type. */
+ unsigned char gsdtyp[2];
+
+ /* Length of the entry. */
+ unsigned char size[2];
+
+ /* Data type. */
+ unsigned char datyp;
+
+ /* Pad for alignment. */
+ unsigned char temp;
+
+ unsigned char flags[2];
+
+ unsigned char value[8];
+ unsigned char psindx[4];
+ unsigned char version_mask[4];
+ unsigned char namlng;
+ unsigned char name[31];
+};
+
+#endif /* _VMS_ESDFM_H */
diff --git a/binutils-2.25/include/vms/esdfv.h b/binutils-2.25/include/vms/esdfv.h
new file mode 100644
index 00000000..fae0dbc1
--- /dev/null
+++ b/binutils-2.25/include/vms/esdfv.h
@@ -0,0 +1,49 @@
+/* Alpha VMS external format of Extended Symbol Def for Vectored symbols.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_ESDFV_H
+#define _VMS_ESDFV_H
+
+struct vms_esdfv
+{
+ /* Entry type. */
+ unsigned char gsdtyp[2];
+
+ /* Length of the entry. */
+ unsigned char size[2];
+
+ /* Data type. */
+ unsigned char datyp;
+
+ /* Pad for alignment. */
+ unsigned char temp;
+
+ unsigned char flags[2];
+
+ unsigned char value[8];
+ unsigned char psindx[4];
+ unsigned char vector[4];
+ unsigned char namlng;
+ unsigned char name[31];
+};
+
+#endif /* _VMS_ESDFV_H */
diff --git a/binutils-2.25/include/vms/esgps.h b/binutils-2.25/include/vms/esgps.h
new file mode 100644
index 00000000..e668a874
--- /dev/null
+++ b/binutils-2.25/include/vms/esgps.h
@@ -0,0 +1,72 @@
+/* Alpha VMS external format of Extended Shared Program Section Definition.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_ESGPS_H
+#define _VMS_ESGPS_H
+
+struct vms_esgps
+{
+ /* Entry type. */
+ unsigned char gsdtyp[2];
+
+ /* Length of the entry. */
+ unsigned char gsdsiz[2];
+
+ /* Psect alignment. */
+ unsigned char align;
+
+ /* Pad for alignment. */
+ unsigned char temp;
+
+ unsigned char flags[2];
+
+ /* Length of this contribution. */
+ unsigned char alloc[4];
+
+ /* Image offset of the psect. */
+ unsigned char base[4];
+
+ /* Symbol vector offset. */
+ unsigned char value[8];
+
+ /* Name. */
+ unsigned char namlng;
+ unsigned char name[31];
+};
+
+/* These are the same as EGPS flags. */
+
+#define ESGPS__V_PIC (1 << 0) /* Not meaningful. */
+#define ESGPS__V_LIB (1 << 1) /* Defined in a shareable image. */
+#define ESGPS__V_OVR (1 << 2) /* Overlaid contribution. */
+#define ESGPS__V_REL (1 << 3) /* Relocatable. */
+#define ESGPS__V_GBL (1 << 4) /* Global. */
+#define ESGPS__V_SHR (1 << 5) /* Shareable. */
+#define ESGPS__V_EXE (1 << 6) /* Executable. */
+#define ESGPS__V_RD (1 << 7) /* Readable. */
+#define ESGPS__V_WRT (1 << 8) /* Writable. */
+#define ESGPS__V_VEC (1 << 9) /* Change mode dispatch or message vectors. */
+#define ESGPS__V_NOMOD (1 << 10) /* Demand-zero. */
+#define ESGPS__V_COM (1 << 11) /* Conditional storage. */
+#define ESGPS__V_ALLOC_64BIT (1 << 12) /* Allocated in 64-bit space. */
+
+#endif /* _VMS_ESGPS_H */
diff --git a/binutils-2.25/include/vms/esrf.h b/binutils-2.25/include/vms/esrf.h
new file mode 100644
index 00000000..291250c9
--- /dev/null
+++ b/binutils-2.25/include/vms/esrf.h
@@ -0,0 +1,36 @@
+/* Alpha VMS external format of Extended GSD Global Symbol Reference.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_ESRF_H
+#define _VMS_ESRF_H
+
+struct vms_esrf
+{
+ struct vms_egsy header;
+
+ unsigned char namlng;
+ unsigned char name[31];
+};
+
+#define ESRF__B_NAMLNG 8
+
+#endif /* _VMS_ESRF_H */
diff --git a/binutils-2.25/include/vms/etir.h b/binutils-2.25/include/vms/etir.h
new file mode 100644
index 00000000..4d922dc3
--- /dev/null
+++ b/binutils-2.25/include/vms/etir.h
@@ -0,0 +1,114 @@
+/* Alpha VMS external format of Extended Text Information and Relocation.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_ETIR_H
+#define _VMS_ETIR_H
+
+#define ETIR__C_MINSTACOD 0 /* Minimum stack code. */
+#define ETIR__C_STA_GBL 0 /* Stack global symbol value. */
+#define ETIR__C_STA_LW 1 /* Stack longword. */
+#define ETIR__C_STA_QW 2 /* Stack quadword. */
+#define ETIR__C_STA_PQ 3 /* Stack psect base + quadword off. */
+#define ETIR__C_STA_LI 4 /* Stack literal. */
+#define ETIR__C_STA_MOD 5 /* Stack module. */
+#define ETIR__C_STA_CKARG 6 /* Check Arguments. */
+#define ETIR__C_MAXSTACOD 6 /* Maximum stack code. */
+
+#define ETIR__C_MINSTOCOD 50 /* Minimum store code. */
+#define ETIR__C_STO_B 50 /* Store byte. */
+#define ETIR__C_STO_W 51 /* Store word. */
+#define ETIR__C_STO_LW 52 /* Store longword. */
+#define ETIR__C_STO_QW 53 /* Store quadword. */
+#define ETIR__C_STO_IMMR 54 /* Store immediate Repeated. */
+#define ETIR__C_STO_GBL 55 /* Store global. */
+#define ETIR__C_STO_CA 56 /* Store code address. */
+#define ETIR__C_STO_RB 57 /* Store relative branch. */
+#define ETIR__C_STO_AB 58 /* Store absolute branch. */
+#define ETIR__C_STO_OFF 59 /* Store offset within psect. */
+#define ETIR__C_STO_IMM 61 /* Store immediate. */
+#define ETIR__C_STO_GBL_LW 62 /* Store global Longword. */
+#define ETIR__C_STO_LP_PSB 63 /* STO_LP_PSB not valid in level 2 use STC_LP_PSB. */
+#define ETIR__C_STO_HINT_GBL 64 /* Store 14 bit HINT at global address. */
+#define ETIR__C_STO_HINT_PS 65 /* Store 14 bit HINT at psect + offset */
+#define ETIR__C_MAXSTOCOD 65 /* Maximum store code. */
+
+/* Operate codes. */
+#define ETIR__C_MINOPRCOD 100 /* Minimum operate code. */
+#define ETIR__C_OPR_NOP 100 /* No-op. */
+#define ETIR__C_OPR_ADD 101 /* Add. */
+#define ETIR__C_OPR_SUB 102 /* Subtract. */
+#define ETIR__C_OPR_MUL 103 /* Multiply. */
+#define ETIR__C_OPR_DIV 104 /* Divide. */
+#define ETIR__C_OPR_AND 105 /* Logical AND. */
+#define ETIR__C_OPR_IOR 106 /* Logical inclusive OR. */
+#define ETIR__C_OPR_EOR 107 /* Logical exclusive OR. */
+#define ETIR__C_OPR_NEG 108 /* Negate. */
+#define ETIR__C_OPR_COM 109 /* Complement. */
+#define ETIR__C_OPR_INSV 110 /* Insert bit field. */
+#define ETIR__C_OPR_ASH 111 /* Arithmetic shift. */
+#define ETIR__C_OPR_USH 112 /* Unsigned shift. */
+#define ETIR__C_OPR_ROT 113 /* Rotate. */
+#define ETIR__C_OPR_SEL 114 /* Select one of 3 long on top of stack. */
+#define ETIR__C_OPR_REDEF 115 /* Redefine this symbol after pass 2. */
+#define ETIR__C_OPR_DFLIT 116 /* Define a literal. */
+#define ETIR__C_MAXOPRCOD 116 /* Maximum operate code. */
+
+/* Control codes. */
+#define ETIR__C_MINCTLCOD 150 /* Minimum control code. */
+#define ETIR__C_CTL_SETRB 150 /* Set relocation base. */
+#define ETIR__C_CTL_AUGRB 151 /* Augment relocation base. */
+#define ETIR__C_CTL_DFLOC 152 /* Define debug location. */
+#define ETIR__C_CTL_STLOC 153 /* Set debug location. */
+#define ETIR__C_CTL_STKDL 154 /* Stack debug location. */
+#define ETIR__C_MAXCTLCOD 154 /* Maximum control code. */
+
+/* Store-conditional (STC) codes. */
+#define ETIR__C_MINSTCCOD 200 /* Minimum store-conditional code. */
+#define ETIR__C_STC_LP 200 /* STC Linkage Pair. */
+#define ETIR__C_STC_LP_PSB 201 /* STC Linkage Pair with Proc Signature. */
+#define ETIR__C_STC_GBL 202 /* STC Address at global address. */
+#define ETIR__C_STC_GCA 203 /* STC Code Address at global address. */
+#define ETIR__C_STC_PS 204 /* STC Address at psect + offset. */
+#define ETIR__C_STC_NOP_GBL 205 /* STC NOP at address of global. */
+#define ETIR__C_STC_NOP_PS 206 /* STC NOP at pect + offset. */
+#define ETIR__C_STC_BSR_GBL 207 /* STC BSR at global address. */
+#define ETIR__C_STC_BSR_PS 208 /* STC BSR at pect + offset. */
+#define ETIR__C_STC_LDA_GBL 209 /* STC LDA at global address. */
+#define ETIR__C_STC_LDA_PS 210 /* STC LDA at psect + offset. */
+#define ETIR__C_STC_BOH_GBL 211 /* STC BSR or Hint at global address. */
+#define ETIR__C_STC_BOH_PS 212 /* STC BSR or Hint at pect + offset. */
+#define ETIR__C_STC_NBH_GBL 213 /* STC NOP,BSR or HINT at global address. */
+#define ETIR__C_STC_NBH_PS 214 /* STC NOP,BSR or HINT at psect + offset. */
+#define ETIR__C_MAXSTCCOD 214 /* Maximum store-conditional code. */
+
+#define ETIR__C_HEADER_SIZE 4 /* Size of the header of a command */
+
+struct vms_etir
+{
+ /* Commands. See above. */
+ unsigned char rectyp[2];
+
+ /* Size (including this header). */
+ unsigned char size[2];
+};
+
+#endif /* _VMS_ETIR_H */
diff --git a/binutils-2.25/include/vms/internal.h b/binutils-2.25/include/vms/internal.h
new file mode 100644
index 00000000..1c8c4724
--- /dev/null
+++ b/binutils-2.25/include/vms/internal.h
@@ -0,0 +1,63 @@
+/* Alpha VMS internal format.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_INTERNAL_H
+#define _VMS_INTERNAL_H
+
+struct vms_internal_eisd
+{
+ unsigned int majorid; /* Version. */
+ unsigned int minorid;
+ unsigned int eisdsize; /* Size (in bytes) of this eisd. */
+ unsigned int secsize; /* Size (in bytes) of the section. */
+ bfd_vma virt_addr; /* Virtual address of the section. */
+ unsigned int flags; /* Flags. */
+ unsigned int vbn; /* Base virtual block number. */
+ unsigned char pfc; /* Page fault cluster. */
+ unsigned char matchctl; /* Linker match control. */
+ unsigned char type; /* Section type. */
+};
+
+struct vms_internal_gbl_eisd
+{
+ struct vms_internal_eisd common;
+
+ unsigned int ident; /* Ident for global section. */
+ unsigned char gblnam[44]; /* Global name ascic. */
+};
+
+struct vms_internal_eisd_map
+{
+ /* Next eisd in the list. */
+ struct vms_internal_eisd_map *next;
+
+ /* Offset in output file. */
+ file_ptr file_pos;
+
+ union
+ {
+ struct vms_internal_eisd eisd;
+ struct vms_internal_gbl_eisd gbl_eisd;
+ } u;
+};
+
+#endif /* _VMS_INTERNAL_H */
diff --git a/binutils-2.25/include/vms/lbr.h b/binutils-2.25/include/vms/lbr.h
new file mode 100644
index 00000000..fd3c256a
--- /dev/null
+++ b/binutils-2.25/include/vms/lbr.h
@@ -0,0 +1,332 @@
+/* Alpha VMS external format of Libraries.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_LBR_H
+#define _VMS_LBR_H
+
+/* Libray HeaDer. */
+
+/* Magic numbers. Should match the major version. */
+
+#define LHD_SANEID_DCX 319232342
+#define LHD_SANEID3 233579905
+#define LHD_SANEID6 233579911
+
+/* Library type. */
+#define LBR__C_TYP_UNK 0 /* Unknown / unspecified. */
+#define LBR__C_TYP_OBJ 1 /* Vax object. */
+#define LBR__C_TYP_MLB 2 /* Macro. */
+#define LBR__C_TYP_HLP 3 /* Help. */
+#define LBR__C_TYP_TXT 4 /* Text. */
+#define LBR__C_TYP_SHSTB 5 /* Vax shareable image. */
+#define LBR__C_TYP_NCS 6 /* NCS. */
+#define LBR__C_TYP_EOBJ 7 /* Alpha object. */
+#define LBR__C_TYP_ESHSTB 8 /* Alpha shareable image. */
+#define LBR__C_TYP_IOBJ 9 /* IA-64 object. */
+#define LBR__C_TYP_ISHSTB 10 /* IA-64 shareable image. */
+
+struct vms_lhd
+{
+ /* Type of the library. See above. */
+ unsigned char type;
+
+ /* Number of indexes. Generally 1, 2 for object libraries. */
+ unsigned char nindex;
+
+ unsigned char fill_1[2];
+
+ /* Sanity Id. */
+ unsigned char sanity[4];
+
+ /* Version. */
+ unsigned char majorid[2];
+ unsigned char minorid[2];
+
+ /* Tool name. */
+ unsigned char lbrver[32];
+
+ /* Create time. */
+ unsigned char credat[8];
+
+ /* Update time. */
+ unsigned char updtim[8];
+
+ /* Size of the MHD. */
+ unsigned char mhdusz;
+
+ unsigned char idxblkf[2]; /* Unused. */
+ unsigned char fill_2;
+ unsigned char closerror[2];
+
+ unsigned char spareword[2];
+
+ /* First free block, and number of free blocks. */
+ unsigned char freevbn[4];
+ unsigned char freeblk[4];
+
+ unsigned char nextrfa[6];
+ unsigned char nextvbn[4];
+
+ /* Free pre-allocated index block. */
+ /* Number of free blocks. */
+ unsigned char freidxblk[4];
+ /* VBN of a simply linked list of free blocks. The list is terminated by a
+ nul VBN. */
+ unsigned char freeidx[4];
+
+ /* Highest pre-allocated index block and in use. */
+ unsigned char hipreal[4];
+ unsigned char hiprusd[4];
+
+ /* Number of index blocks in use. */
+ unsigned char idxblks[4];
+
+ /* Number of index entries. */
+ unsigned char idxcnt[4];
+
+ /* Number of modules entries. */
+ unsigned char modcnt[4];
+
+ unsigned char fill_3[2];
+
+ /* Number of module headers. */
+ unsigned char modhdrs[4];
+
+ /* Overhead index pointers. */
+ unsigned char idxovh[4];
+
+ /* Update history records. */
+ unsigned char maxluhrec[2];
+ unsigned char numluhrec[2];
+ unsigned char begluhrfa[6];
+ unsigned char endluhrfa[6];
+
+ /* DCX map. */
+ unsigned char dcxmapvbn[4];
+
+ unsigned char fill_4[4 * 13];
+};
+
+/* Known major ids. */
+#define LBR_MAJORID 3 /* Alpha libraries. */
+#define LBR_ELFMAJORID 6 /* Elf libraries (new index, new data). */
+
+/* Offset of the first IDD. */
+#define LHD_IDXDESC 196
+
+/* InDex Description. */
+struct vms_idd
+{
+ unsigned char flags[2];
+
+ /* Max length of the key. */
+ unsigned char keylen[2];
+
+ /* First index block. */
+ unsigned char vbn[4];
+};
+
+/* IDD flags. */
+#define IDD__FLAGS_ASCII 1
+#define IDD__FLAGS_LOCKED 2
+#define IDD__FLAGS_VARLENIDX 4
+#define IDD__FLAGS_NOCASECMP 8
+#define IDD__FLAGS_NOCASENTR 16
+#define IDD__FLAGS_UPCASNTRY 32
+
+#define IDD_LENGTH 8
+
+/* Index block. */
+#define INDEXDEF__LENGTH 512
+#define INDEXDEF__BLKSIZ 500
+
+struct vms_indexdef
+{
+ /* Number of bytes used. */
+ unsigned char used[2];
+
+ /* VBN of the parent. */
+ unsigned char parent[4];
+
+ unsigned char fill_1[6];
+
+ /* The key field contains vms_idx/vms_elfidx structures, which are
+ simply a key (= a string) and a rfa. */
+ unsigned char keys[INDEXDEF__BLKSIZ];
+};
+
+/* An offset in a file. */
+
+struct vms_rfa
+{
+ /* Logical block number, 1 based.
+ 0 means that the field is absent. Block size is 512. */
+ unsigned char vbn[4];
+
+ /* Offset within the block. */
+ unsigned char offset[2];
+};
+
+/* Index keys. For version 3. */
+
+struct vms_idx
+{
+ /* Offset from the start of the vbn, so minimum should be
+ DATA__DATA (ie 6). */
+ struct vms_rfa rfa;
+
+ unsigned char keylen;
+ /* The length of this field is in fact keylen. */
+ unsigned char keyname[256];
+};
+
+/* Index keys, for version 4 and later. */
+
+struct vms_elfidx
+{
+ struct vms_rfa rfa;
+
+ unsigned char keylen[2];
+ unsigned char flags;
+ unsigned char keyname[256];
+};
+
+/* Flags of elfidx. */
+
+#define ELFIDX__WEAK 0x01 /* Weak symbol. */
+#define ELFIDX__GROUP 0x02 /* Group symbol. */
+#define ELFIDX__LISTRFA 0x04 /* RFA field points to an LHS. */
+#define ELFIDX__SYMESC 0x08 /* Long symbol. */
+
+#define RFADEF__C_INDEX 0xffff
+
+/* List head structure. That's what is pointed by rfa when LISTRFA flag
+ is set in elfidx. */
+
+struct vms_lhs
+{
+ struct vms_rfa ng_g_rfa; /* Non-group global. */
+ struct vms_rfa ng_wk_rfa; /* Non-group weak. */
+ struct vms_rfa g_g_rfa; /* Group global. */
+ struct vms_rfa g_wk_rfa; /* Group weak. */
+ unsigned char flags;
+};
+
+/* List node structure. Fields of LHS point to this structure. */
+
+struct vms_lns
+{
+ /* Next node in the list. */
+ struct vms_rfa nxtrfa;
+
+ /* Module associated with the key. */
+ struct vms_rfa modrfa;
+};
+
+struct vms_datadef
+{
+ /* Number of records in this block. */
+ unsigned char recs;
+ unsigned char fill_1;
+
+ /* Next vbn. */
+ unsigned char link[4];
+
+ /* Data. The first word is the record length, followed by record
+ data and a possible pad byte so that record length is always aligned. */
+ unsigned char data[506];
+};
+#define DATA__LENGTH 512
+#define DATA__DATA 6
+
+/* Key name block. This is used for keys longer than 128 bytes. */
+
+struct vms_kbn
+{
+ /* Length of the key chunk. */
+ unsigned char keylen[2];
+
+ /* RFA of the next chunk. */
+ struct vms_rfa rfa;
+
+ /* Followed by the key chunk. */
+};
+
+/* Module header. */
+struct vms_mhd
+{
+ /* Fixed part. */
+ unsigned char lbrflag;
+ unsigned char id;
+ unsigned char fill_1[2];
+ unsigned char refcnt[4];
+ unsigned char datim[8];
+
+ unsigned char objstat;
+ /* Ident or GSMATCH. */
+ unsigned char objidlng;
+ unsigned char objid[31];
+
+ unsigned char pad1[3];
+ unsigned char otherefcnt[4];
+ unsigned char modsize[4];
+ unsigned char pad2[4];
+};
+
+#define MHD__C_MHDID 0xad /* Value for id. */
+#define MHD__C_MHDLEN 16 /* Fixed part length. */
+#define MHD__C_USRDAT 16
+
+/* Flags for objstat. */
+#define MHD__M_SELSRC 0x1 /* Selective search. */
+#define MHD__M_OBJTIR 0x2
+#define MHD__M_WKSYM 0x4
+
+struct vms_luh
+{
+ unsigned char nxtluhblk[4];
+ unsigned char spare[2];
+ unsigned char data[506];
+};
+
+struct vms_luhdef
+{
+ unsigned char rechdr[2];
+ unsigned char reclen[2];
+};
+#define LUH__RECHDRLEN 4
+#define LUH__RECHDRMRK 0xabba
+#define LUH__DATAFLDLEN 506
+
+/* Entry in the history. */
+
+struct vms_leh
+{
+ unsigned char date[8];
+ unsigned char nbr_units[2];
+ unsigned char action[2]; /* 1: delete, 2: insert, 3: replaced. */
+ unsigned char idlen;
+ /* username
+ modules... */
+};
+
+#endif /* _VMS_LBR_H */
diff --git a/binutils-2.25/include/vms/prt.h b/binutils-2.25/include/vms/prt.h
new file mode 100644
index 00000000..8b8d27b5
--- /dev/null
+++ b/binutils-2.25/include/vms/prt.h
@@ -0,0 +1,43 @@
+/* Alpha VMS external format of Protection values.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_PRT_H
+#define _VMS_PRT_H
+
+#define PRT__C_NA 0 /* No access. */
+#define PRT__C_RESERVED 1
+#define PRT__C_KW 2 /* Kernel RW. */
+#define PRT__C_KR 3 /* Kernel RO. */
+#define PRT__C_UW 4 /* User RW. */
+#define PRT__C_EW 5 /* Executive RW. */
+#define PRT__C_ERKW 6 /* Executive RO, Kernel RW. */
+#define PRT__C_ER 7 /* Executive RO. */
+#define PRT__C_SW 8 /* Supervisor RW. */
+#define PRT__C_SREW 9 /* Supervisor RO, Executive RW. */
+#define PRT__C_SRKW 10 /* Supervisor RO, Kernel RW. */
+#define PRT__C_SR 11 /* Supervisor RO. */
+#define PRT__C_URSW 12 /* User RO, Supervisor RW. */
+#define PRT__C_UREW 13 /* User RO, Executive RW. */
+#define PRT__C_URKW 14 /* User RO, Kernel RW. */
+#define PRT__C_UR 15 /* User RO. */
+
+#endif /* _VMS_PRT_H */
diff --git a/binutils-2.25/include/vms/shl.h b/binutils-2.25/include/vms/shl.h
new file mode 100644
index 00000000..d1d9fae9
--- /dev/null
+++ b/binutils-2.25/include/vms/shl.h
@@ -0,0 +1,55 @@
+/* Alpha VMS external format of Shareable image List.
+
+ Copyright 2010 Free Software Foundation, Inc.
+ Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _VMS_SHL_H
+#define _VMS_SHL_H
+
+struct vms_shl
+{
+ /* Base address of this shareable image. */
+ unsigned char baseva[4];
+
+ /* Point in SHL shareable image to SHL in executable image. */
+ unsigned char shlptr[4];
+
+ /* GSMATCH. */
+ unsigned char ident[4];
+
+ /* Permanent shareable image context. */
+ unsigned char permctx[4];
+
+ /* Size of this structure. */
+ unsigned char size;
+
+ unsigned char fill_1[2];
+
+ /* Flags. */
+ unsigned char flags;
+
+ /* Address of the image control block (in memory). */
+ unsigned char icb[4];
+
+ /* Image name. ASCIC. */
+ unsigned char imgnam[40];
+};
+
+#endif /* _VMS_SHL_H */