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.
This commit is contained in:
		| @@ -1,3 +1,34 @@ | ||||
| 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. | ||||
|   | ||||
							
								
								
									
										50
									
								
								include/vms/dcx.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								include/vms/dcx.h
									
									
									
									
									
										Normal file
									
								
							| @@ -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 */ | ||||
							
								
								
									
										129
									
								
								include/vms/dsc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								include/vms/dsc.h
									
									
									
									
									
										Normal file
									
								
							| @@ -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 */ | ||||
| @@ -42,6 +42,7 @@ struct vms_dst_header | ||||
| #define DST__K_BLISS	2 | ||||
| #define DST__K_C	7 | ||||
| #define DST__K_ADA	9 | ||||
| #define DST__K_CXX	15 | ||||
|  | ||||
| struct vms_dst_modbeg | ||||
| { | ||||
| @@ -82,12 +83,24 @@ struct vms_dst_pcline | ||||
| #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_LINUM_B 19 | ||||
| #define DST__K_SET_LINUM_L 20 | ||||
| #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 | ||||
| @@ -146,6 +159,7 @@ struct vms_dst_blkend | ||||
| #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 | ||||
| @@ -162,4 +176,99 @@ struct vms_dst_src_decl_src | ||||
|   /* 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 */ | ||||
|   | ||||
| @@ -57,4 +57,6 @@ struct vms_eeom | ||||
|   unsigned char tfradr[8]; | ||||
| }; | ||||
|  | ||||
| #define EEOM__M_WKTFR (1 << 0)	/* Transfer address is weak.  */ | ||||
|  | ||||
| #endif /* _VMS_EEOM_H */ | ||||
|   | ||||
| @@ -47,4 +47,18 @@ struct vms_egps | ||||
|   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 */ | ||||
|   | ||||
| @@ -57,5 +57,4 @@ struct vms_egsd_entry | ||||
|   unsigned char gsdsiz[2]; | ||||
| }; | ||||
|  | ||||
|  | ||||
| #endif /* _VMS_EGSD_H */ | ||||
|   | ||||
| @@ -25,14 +25,14 @@ | ||||
|  | ||||
| #define EGSY__W_FLAGS  6 | ||||
|  | ||||
| #define EGSY__V_WEAK		0x0001 | ||||
| #define EGSY__V_DEF		0x0002 | ||||
| #define EGSY__V_UNI		0x0004 | ||||
| #define EGSY__V_REL		0x0008 | ||||
| #define EGSY__V_COMM		0x0010 | ||||
| #define EGSY__V_VECEP		0x0020 | ||||
| #define EGSY__V_NORM		0x0040 | ||||
| #define EGSY__V_QUAD_VAL	0x0080 | ||||
| #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 | ||||
| { | ||||
|   | ||||
| @@ -71,7 +71,7 @@ struct vms_eiaf | ||||
|   unsigned char permctx[4]; | ||||
|  | ||||
|   /* Base address of the image itself.  */ | ||||
|   unsigned char base_va[8]; | ||||
|   unsigned char base_va[4]; | ||||
|  | ||||
|   /* Offset to linkage pair with procedure signature fixups.  */ | ||||
|   unsigned char lppsbfixoff[4]; | ||||
|   | ||||
| @@ -45,6 +45,10 @@ struct vms_eiha | ||||
|   /* 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 */ | ||||
|   | ||||
| @@ -36,7 +36,7 @@ struct vms_eihd | ||||
|   /* Byte offset to ISD (Image Section Descriptors) list.  */ | ||||
|   unsigned char isdoff[4]; | ||||
|  | ||||
|   /* Byte offset to activation data.  */ | ||||
|   /* Byte offset to activation data (off=16).  */ | ||||
|   unsigned char activoff[4]; | ||||
|  | ||||
|   /* Byte offset to symbol table and debugging data.  */  | ||||
| @@ -48,13 +48,13 @@ struct vms_eihd | ||||
|   /* Byte offset to patch data.  */ | ||||
|   unsigned char patchoff[4]; | ||||
|  | ||||
|   /* RVA of fixup info.  */ | ||||
|   /* RVA of fixup info (off=32).  */ | ||||
|   unsigned char iafva[8]; | ||||
|  | ||||
|   /* RVA of symbol vector.  */ | ||||
|   unsigned char symvva[8]; | ||||
|  | ||||
|   /* Byte offset to version number array.  */ | ||||
|   /* Byte offset to version number array (off=48).  */ | ||||
|   unsigned char version_array_off[4]; | ||||
|  | ||||
|   /* Image type.  */ | ||||
| @@ -66,7 +66,7 @@ struct vms_eihd | ||||
|   /* Size in bytes of image I/O section requested.  */ | ||||
|   unsigned char imgiocnt[4]; | ||||
|  | ||||
|   /* Nbr of channels requested.  */ | ||||
|   /* Nbr of channels requested (off=64).  */ | ||||
|   unsigned char iochancnt[4]; | ||||
|  | ||||
|   /* Requested privilege mask.  */ | ||||
| @@ -113,6 +113,10 @@ struct vms_eihd | ||||
| #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.  */ | ||||
| @@ -129,7 +133,6 @@ struct vms_eihd | ||||
| #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 | ||||
| @@ -137,4 +140,6 @@ struct vms_eihd | ||||
| #define EIHD__Q_SYMVVA		40 | ||||
| #define EIHD__L_IMGTYPE		52 | ||||
|  | ||||
| #define EIHD__C_LENGTH 104 | ||||
|  | ||||
| #endif /* _VMS_EIHD_H */ | ||||
|   | ||||
| @@ -59,5 +59,4 @@ struct vms_eihs | ||||
| #define EIHS__L_DMTVBN		24 | ||||
| #define EIHS__L_DMTBYTES	28 | ||||
|  | ||||
|  | ||||
| #endif /* _VMS_EIHS_H */ | ||||
|   | ||||
| @@ -52,5 +52,7 @@ struct vms_eihvn_subversion | ||||
| #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 */ | ||||
|   | ||||
| @@ -33,13 +33,19 @@ | ||||
| #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 proected.  */ | ||||
| #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]; | ||||
| @@ -70,17 +76,34 @@ struct vms_eisd | ||||
|   unsigned char type; | ||||
|  | ||||
|   unsigned char fill_1; | ||||
| }; | ||||
|  | ||||
| struct vms_eisd_ext | ||||
| { | ||||
|   /* 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[44]; | ||||
|   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 | ||||
|   | ||||
| @@ -62,6 +62,13 @@ struct vms_emh_mhd | ||||
|   /* 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; | ||||
|   | ||||
| @@ -36,4 +36,6 @@ struct vms_esdf | ||||
|   unsigned char name[31]; | ||||
| }; | ||||
|  | ||||
| #define ESDF__B_NAMLNG		32 | ||||
|  | ||||
| #endif /* _VMS_ESDF_H */ | ||||
|   | ||||
							
								
								
									
										49
									
								
								include/vms/esdfm.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								include/vms/esdfm.h
									
									
									
									
									
										Normal file
									
								
							| @@ -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 */ | ||||
							
								
								
									
										49
									
								
								include/vms/esdfv.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								include/vms/esdfv.h
									
									
									
									
									
										Normal file
									
								
							| @@ -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 */ | ||||
| @@ -31,4 +31,6 @@ struct vms_esrf | ||||
|   unsigned char name[31]; | ||||
| }; | ||||
|  | ||||
| #define ESRF__B_NAMLNG   8 | ||||
|  | ||||
| #endif /* _VMS_ESRF_H */ | ||||
|   | ||||
							
								
								
									
										63
									
								
								include/vms/internal.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								include/vms/internal.h
									
									
									
									
									
										Normal file
									
								
							| @@ -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 */ | ||||
							
								
								
									
										255
									
								
								include/vms/lbr.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										255
									
								
								include/vms/lbr.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,255 @@ | ||||
| /* 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.  */ | ||||
|  | ||||
| #define LHD_SANEID_DCX 319232342 | ||||
| #define LHD_SANEID3 233579905 | ||||
| #define LHD_SANEID4 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.  */ | ||||
|  | ||||
| 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.  */ | ||||
|   unsigned char freidxblk[4]; | ||||
|   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]; | ||||
| }; | ||||
|  | ||||
| /* 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]; | ||||
|   unsigned char keys[INDEXDEF__BLKSIZ]; | ||||
| }; | ||||
|  | ||||
| /* Index keys.  */ | ||||
| struct vms_idxdef | ||||
| { | ||||
|   unsigned char vbn[4]; | ||||
|   unsigned char offset[2]; | ||||
|  | ||||
|   unsigned char keylen; | ||||
|   unsigned char keyname[256]; | ||||
| }; | ||||
|  | ||||
| struct vms_idxdef2 | ||||
| { | ||||
|   unsigned char vbn[4]; | ||||
|  | ||||
|   /* Offset from the start of the vbn, so minimum should be | ||||
|      DATA__DATA (ie 6).  */ | ||||
|   unsigned char offset[2]; | ||||
|  | ||||
|   unsigned char keylen[2]; | ||||
|   unsigned char fill_1; | ||||
|   unsigned char keyname[256]; | ||||
| }; | ||||
|  | ||||
| #define RFADEF__C_INDEX 0xffff | ||||
|  | ||||
| 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 | ||||
|  | ||||
| /* 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]; | ||||
| }; | ||||
|  | ||||
| #define MHD__C_MHDID 0xad	/* Value for id.  */ | ||||
| #define MHD__C_USRDAT 16 | ||||
| #define MHD__M_SELSRC 0x1 | ||||
| #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 */ | ||||
							
								
								
									
										43
									
								
								include/vms/prt.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								include/vms/prt.h
									
									
									
									
									
										Normal file
									
								
							| @@ -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 */ | ||||
| @@ -37,11 +37,15 @@ struct vms_shl | ||||
|   /* 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.  */ | ||||
|   /* Address of the image control block (in memory).  */ | ||||
|   unsigned char icb[4]; | ||||
|  | ||||
|   /* Image name.  ASCIC.  */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user