source: trunk/libs/newlib/src/include/vms/dst.h @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 6.7 KB
Line 
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
28struct 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
47struct 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
61struct 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
77struct 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
108struct vms_dst_rtnend
109{
110  unsigned char unused;
111  unsigned char size[4];
112};
113
114/* Prologue.  */
115#define DST__K_PROLOG 162
116
117struct vms_dst_prolog
118{
119  unsigned char bkpt_addr[4];
120};
121
122/* Epilog.  */
123#define DST__K_EPILOG 127
124
125struct 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
137struct 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
147struct 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
167struct 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
182struct 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
264struct 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 */
Note: See TracBrowser for help on using the repository browser.