summaryrefslogtreecommitdiffstats
path: root/binutils-2.22/include/vms/dst.h
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.22/include/vms/dst.h')
-rw-r--r--binutils-2.22/include/vms/dst.h274
1 files changed, 274 insertions, 0 deletions
diff --git a/binutils-2.22/include/vms/dst.h b/binutils-2.22/include/vms/dst.h
new file mode 100644
index 0000000..231d397
--- /dev/null
+++ b/binutils-2.22/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 */