Annotation of src/external/gpl3/binutils.old/dist/include/vms/dst.h, Revision 1.1.1.1
1.1 christos 1: /* Alpha VMS external format of Debug Symbol Table.
2:
3: Copyright 2010 Free Software Foundation, Inc.
4: Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
5:
6: This file is part of BFD, the Binary File Descriptor library.
7:
8: This program is free software; you can redistribute it and/or modify
9: it under the terms of the GNU General Public License as published by
10: the Free Software Foundation; either version 3 of the License, or
11: (at your option) any later version.
12:
13: This program is distributed in the hope that it will be useful,
14: but WITHOUT ANY WARRANTY; without even the implied warranty of
15: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16: GNU General Public License for more details.
17:
18: You should have received a copy of the GNU General Public License
19: along with this program; if not, write to the Free Software
20: Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
21: MA 02110-1301, USA. */
22:
23: #ifndef _VMS_DST_H
24: #define _VMS_DST_H
25:
26: /* Also available in vms freeware v5.0 debug/alpha_dstrecrds.sdl. */
27:
28: struct vms_dst_header
29: {
30: /* Length. */
31: unsigned char length[2];
32:
33: /* Type. */
34: unsigned char type[2];
35: };
36:
37: /* Beginning of module. */
38: #define DST__K_MODBEG 188
39:
40: /* Some well known languages. */
41: #define DST__K_MACRO 0
42: #define DST__K_BLISS 2
43: #define DST__K_C 7
44: #define DST__K_ADA 9
45: #define DST__K_CXX 15
46:
47: struct vms_dst_modbeg
48: {
49: unsigned char flags;
50: unsigned char unused;
51: unsigned char language[4];
52: unsigned char major[2];
53: unsigned char minor[2];
54: /* Module name ASCIC. */
55: /* Ident name ASCIC. */
56: };
57:
58: /* Routine begin. */
59: #define DST__K_RTNBEG 190
60:
61: struct vms_dst_rtnbeg
62: {
63: unsigned char flags;
64:
65: /* Address of the code. */
66: unsigned char address[4];
67:
68: /* Procedure descriptor address. */
69: unsigned char pd_address[4];
70:
71: /* Name: ASCIC */
72: };
73:
74: /* Line number. */
75: #define DST__K_LINE_NUM 185
76:
77: struct vms_dst_pcline
78: {
79: unsigned char pcline_command;
80: unsigned char field[4];
81: };
82:
83: #define DST__K_DELTA_PC_W 1
84: #define DST__K_INCR_LINUM 2
85: #define DST__K_INCR_LINUM_W 3
86: #define DST__K_SET_LINUM_INCR 4
87: #define DST__K_SET_LINUM_INCR_W 5
88: #define DST__K_RESET_LINUM_INCR 6
89: #define DST__K_BEG_STMT_MODE 7
90: #define DST__K_END_STMT_MODE 8
91: #define DST__K_SET_LINUM 9
92: #define DST__K_SET_PC 10
93: #define DST__K_SET_PC_W 11
94: #define DST__K_SET_PC_L 12
95: #define DST__K_SET_STMTNUM 13
96: #define DST__K_TERM 14
97: #define DST__K_TERM_W 15
98: #define DST__K_SET_ABS_PC 16
99: #define DST__K_DELTA_PC_L 17
100: #define DST__K_INCR_LINUM_L 18
101: #define DST__K_SET_LINUM_B 19
102: #define DST__K_SET_LINUM_L 20
103: #define DST__K_TERM_L 21
104:
105: /* Routine end. */
106: #define DST__K_RTNEND 191
107:
108: struct vms_dst_rtnend
109: {
110: unsigned char unused;
111: unsigned char size[4];
112: };
113:
114: /* Prologue. */
115: #define DST__K_PROLOG 162
116:
117: struct vms_dst_prolog
118: {
119: unsigned char bkpt_addr[4];
120: };
121:
122: /* Epilog. */
123: #define DST__K_EPILOG 127
124:
125: struct vms_dst_epilog
126: {
127: unsigned char flags;
128: unsigned char count[4];
129: };
130:
131: /* Module end. */
132: #define DST__K_MODEND 189
133:
134: /* Block begin. */
135: #define DST__K_BLKBEG 176
136:
137: struct vms_dst_blkbeg
138: {
139: unsigned char unused;
140: unsigned char address[4];
141: /* Name ASCIC. */
142: };
143:
144: /* Block end. */
145: #define DST__K_BLKEND 177
146:
147: struct vms_dst_blkend
148: {
149: unsigned char unused;
150: unsigned char size[4];
151: };
152:
153: /* Source correlation. */
154: #define DST__K_SOURCE 155
155:
156: #define DST__K_SRC_DECLFILE 1
157: #define DST__K_SRC_SETFILE 2
158: #define DST__K_SRC_SETREC_L 3
159: #define DST__K_SRC_SETREC_W 4
160: #define DST__K_SRC_SETLNUM_L 5
161: #define DST__K_SRC_SETLNUM_W 6
162: #define DST__K_SRC_INCRLNUM_B 7
163: #define DST__K_SRC_DEFLINES_W 10
164: #define DST__K_SRC_DEFLINES_B 11
165: #define DST__K_SRC_FORMFEED 16
166:
167: struct vms_dst_src_decl_src
168: {
169: unsigned char length;
170: unsigned char flags;
171: unsigned char fileid[2];
172: unsigned char rms_cdt[8];
173: unsigned char rms_ebk[4];
174: unsigned char rms_ffb[2];
175: unsigned char rms_rfo;
176: /* Filename ASCIC. */
177: };
178:
179: /* Record begin. */
180: #define DST__K_RECBEG 171
181:
182: struct vms_dst_recbeg
183: {
184: unsigned char vflags;
185: unsigned char value[4];
186: /* Filename ASCIC. */
187: };
188:
189: /* Record end. */
190: #define DST__K_RECEND 172
191:
192: /* Enumeration begin. */
193: #define DST__K_ENUMBEG 165
194:
195: /* Enumeration element. */
196: #define DST__K_ENUMELT 164
197:
198: /* Enumeration end. */
199: #define DST__K_ENUMEND 166
200:
201: /* Separate type specification. */
202: #define DST__K_SEPTYP 163
203:
204: /* Type specification. */
205: #define DST__K_TYPSPEC 175
206:
207: #define DST__K_TS_ATOM 1 /* Atomic. */
208: #define DST__K_TS_DSC 2 /* VMS Standard descriptor. */
209: #define DST__K_TS_IND 3 /* Indirect. */
210: #define DST__K_TS_TPTR 4 /* Typed pointer. */
211: #define DST__K_TS_PTR 5 /* Pointer. */
212: #define DST__K_TS_PIC 6 /* Pictured. */
213: #define DST__K_TS_ARRAY 7
214: #define DST__K_TS_SET 8
215: #define DST__K_TS_SUBRANGE 9 /* Subrange. */
216: #define DST__K_TS_ADA_DSC 10 /* Ada descriptor. */
217: #define DST__K_TS_FILE 11
218: #define DST__K_TS_AREA 12 /* Area (PL/I). */
219: #define DST__K_TS_OFFSET 13 /* Offset (PL/I). */
220: #define DST__K_TS_NOV_LENG 14 /* Novel Length. */
221: #define DST__K_TS_IND_TSPEC 15 /* Internal to debugger. */
222: #define DST__K_TS_SELF_REL_LABEL 16 /* Self-relative label (PL/I). */
223: #define DST__K_TS_RFA 17 /* (Basic). */
224: #define DST__K_TS_TASK 18 /* (Ada). */
225: #define DST__K_TS_ADA_ARRAY 19
226: #define DST__K_TS_XMOD_IND 20 /* Cross-module indirect type spec. */
227: #define DST__K_TS_CONSTRAINED 21 /* (Ada). */
228: #define DST__K_TS_MAYBE_CONSTR 22 /* Might-be-constrained (Ada). */
229: #define DST__K_TS_DYN_LOV_LENG 23
230: #define DST__K_TS_TPTR_D 24 /* Typed pointer to descriptor. */
231: #define DST__K_TS_SCAN_TREE 25
232: #define DST__K_TS_SCAN_TREEPTR 26
233: #define DST__K_TS_INCOMPLETE 27
234: #define DST__K_TS_BLISS_BLOCK 28
235: #define DST__K_TS_TPTR_64 29
236: #define DST__K_TS_PTR_64 30
237: #define DST__K_TS_REF 31 /* C++ referenced type. */
238: #define DST__K_TS_REF_64 32
239:
240: /* Value Specification. */
241: #define DST__K_VFLAGS_NOVAL 128 /* No value. */
242: #define DST__K_VFLAGS_NOTACTIVE 248 /* Not active at current PC. */
243: #define DST__K_VFLAGS_UNALLOC 249 /* Not allocated. */
244: #define DST__K_VFLAGS_DSC 250 /* Descriptor format. */
245: #define DST__K_VFLAGS_TVS 251 /* Trailing value spec. */
246: #define DST__K_VS_FOLLOWS 253 /* Value specification follow. */
247: #define DST__K_VFLAGS_BITOFFS 255 /* Value is a bit offset. */
248:
249: /* Vflags fields. */
250: #define DST__K_VALKIND_MASK 0x03
251: #define DST__K_INDIR 0x04
252: #define DST__K_DISP 0x08
253: #define DST__K_REGNUM_MASK 0xf0
254: #define DST__K_REGNUM_SHIFT 4
255:
256: #define DST__K_VALKIND_LITERAL 0
257: #define DST__K_VALKIND_ADDR 1
258: #define DST__K_VALKIND_DESC 2
259: #define DST__K_VALKIND_REG 3
260:
261: /* Label. */
262: #define DST__K_LABEL 187
263:
264: struct vms_dst_label
265: {
266: unsigned char unused;
267:
268: unsigned char value[4];
269: unsigned char name[1];
270: };
271:
272: /* Discontiguous range. */
273: #define DST__K_DIS_RANGE 118
274: #endif /* _VMS_DST_H */
CVSweb <webmaster@jp.NetBSD.org>