Subversion Repositories tendra.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
7 7u83 2
 * Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>.
3
 * All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions are met:
7
 *
8
 * 1. Redistributions of source code must retain the above copyright notice,
9
 *    this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright notice,
11
 *    this list of conditions and the following disclaimer in the documentation
12
 *    and/or other materials provided with the distribution.
13
 * 3. Neither the name of The TenDRA Project nor the names of its contributors
14
 *    may be used to endorse or promote products derived from this software
15
 *    without specific, prior written permission.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
18
 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
19
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
 *
29
 * $Id$
30
 */
31
/*
2 7u83 32
    		 Crown Copyright (c) 1997
7 7u83 33
 
2 7u83 34
    This TenDRA(r) Computer Program is subject to Copyright
35
    owned by the United Kingdom Secretary of State for Defence
36
    acting through the Defence Evaluation and Research Agency
37
    (DERA).  It is made available to Recipients with a
38
    royalty-free licence for its use, reproduction, transfer
39
    to other parties and amendment for any purpose not excluding
40
    product development provided that any such use et cetera
41
    shall be deemed to be acceptance of the following conditions:-
7 7u83 42
 
2 7u83 43
        (1) Its Recipients shall ensure that this Notice is
44
        reproduced upon any copies or amended versions of it;
7 7u83 45
 
2 7u83 46
        (2) Any amended version of it shall be clearly marked to
47
        show both the nature of and the organisation responsible
48
        for the relevant amendment or amendments;
7 7u83 49
 
2 7u83 50
        (3) Its onward transfer from a recipient to another
51
        party shall be deemed to be that party's acceptance of
52
        these conditions;
7 7u83 53
 
2 7u83 54
        (4) DERA gives no warranty or assurance as to its
55
        quality or suitability for any purpose and DERA accepts
56
        no liability whatsoever in relation to any use to which
57
        it may be put.
58
*/
59
 
60
 
61
/**********************************************************************
62
$Author: pwe $
63
$Date: 1998/03/11 11:03:41 $
64
$Revision: 1.3 $
65
$Log: dw2_entries.h,v $
66
 * Revision 1.3  1998/03/11  11:03:41  pwe
67
 * DWARF optimisation info
68
 *
69
 * Revision 1.2  1998/02/18  11:22:19  pwe
70
 * test corrections
71
 *
72
 * Revision 1.1.1.1  1998/01/17  15:55:48  release
73
 * First version to be checked into rolling release.
74
 *
75
 * Revision 1.10  1998/01/09  09:31:25  pwe
76
 * prep restructure
77
 *
78
 * Revision 1.9  1997/12/04  19:41:21  pwe
79
 * ANDF-DE V1.9
80
 *
81
 * Revision 1.8  1997/11/06  09:22:03  pwe
82
 * ANDF-DE V1.8
83
 *
84
 * Revision 1.7  1997/10/23  09:27:32  pwe
85
 * ANDF-DE v1.7, extra diags
86
 *
87
 * Revision 1.6  1997/10/10  18:18:29  pwe
88
 * prep ANDF-DE revision
89
 *
90
 * Revision 1.5  1997/08/23  13:36:36  pwe
91
 * initial ANDF-DE
92
 *
93
 * Revision 1.4  1997/04/17  11:50:20  pwe
94
 * Sparc and 80x86 support
95
 *
96
 * Revision 1.3  1997/04/01  17:19:38  pwe
97
 * diagnose pl_tests and locate -> platform specific
98
 *
99
 * Revision 1.2  1997/03/24  11:10:23  pwe
100
 * struct bitfields
101
 *
102
 * Revision 1.1  1997/03/20  16:09:08  pwe
103
 * first version
104
 *
105
**********************************************************************/
106
 
107
#ifndef entries_tag
108
#define entries_tag 1
109
 
110
 
7 7u83 111
typedef struct {
112
	int	index;
113
	long	*attr;
114
	long	valid;
115
	long	special;
2 7u83 116
#if 1
7 7u83 117
	char	*aname;
2 7u83 118
#endif
119
} abbrev_entry;
120
 
121
extern abbrev_entry
122
  dwe_comp_unit,
123
  dwe_cmac_unit,
124
  dwe_module,
125
  dwe_namespace,
126
  dwe_subunit,
127
  dwe_childunit,
128
  dwe_child_acc,
129
  dwe_import,
130
  dwe_import_p,
131
  dwe_entrypt,
132
  dwe_param,
133
  dwe_formal,
134
  dwe_opt_par,
135
  dwe_thrown_t,
136
  dwe_inl_call,
137
  dwe_inl_opnd,
138
  dwe_scope,
139
  dwe_fragment,
140
  dwe_label,
141
  dwe_with,
142
  dwe_try,
143
  dwe_catch,
144
  dwe_variable,
145
  dwe_constant,
146
  dwe_tmpl_type,
147
  dwe_tmpl_val,
148
  dwe_tmpl_proc,
149
  dwe_tmpl_mod,
150
  dwe_typedef,
151
  dwe_typecon,
152
  dwe_cnstraint,
153
  dwe_base_type,
154
  dwe_cnst_type,
155
  dwe_vol_type,
156
  dwe_clwd_type,
157
  dwe_als_type,
158
  dwe_lim_type,
159
  dwe_ptr_type,
160
  dwe_hpptr_t,
161
  dwe_ref_type,
162
  dwe_pack_type,
163
  dwe_arr_type,
164
  dwe_arr_dyn,
165
  dwe_subr_type,
166
  dwe_enum_type,
167
  dwe_enum_tor,
168
  dwe_enum_char,
169
  dwe_struct_t,
170
  dwe_member,
171
  dwe_varpart,
172
  dwe_varpart_t,
173
  dwe_variant_0,
174
  dwe_variant_1,
175
  dwe_variant_n,
176
  dwe_union_t,
177
  dwe_class_t,
178
  dwe_inheritce,
179
  dwe_friend,
180
  dwe_ptrmem_t,
181
  dwe_ind_mem,
182
  dwe_proc_type,
183
  dwe_procv_t,
184
  dwe_string_t,
185
  dwe_stringc_t,
186
  dwe_file_t,
187
  dwe_set_t,
188
  dwe_fixpt_t,
189
  dwe_fldg_t,
190
  dwe_modular_t,
191
  dwe_task_t,
192
  dwe_synch_t,
193
  dwe_entry,
194
  dwe_for_unit,
195
  dwe_for_lang,
196
  dwe_call,
197
  dwe_return,
198
  dwe_destruct,
199
  dwe_branch,
200
  dwe_branch_0,
201
  dwe_break,
202
  dwe_test,
203
  dwe_test_0,
204
  dwe_jump,
205
  dwe_jump_0,
206
  dwe_lj,
207
  dwe_lj_0,
208
  dwe_throw,
209
  dwe_barrier,
210
  dwe_select,
211
  dwe_accept,
212
  dwe_accept_c,
213
  dwe_rts,
214
  dwe_rts_en,
215
  dwe_sel_alt,
216
  dwe_sel_alt_c,
217
  dwe_sel_guard,
218
  dwe_asynchsel,
219
  dwe_trigger,
220
  dwe_trigger_c,
221
  dwe_abort_pt,
222
  dwe_abort_ptc,
223
  dwe_requeue,
224
  dwe_unknown_t,
225
  dwe_span,
226
  dwe_span_strt,
227
  dwe_span_end,
228
  dwe_absent,
229
  dwe_absent_r,
230
  dwe_absent_x,
231
  dwe_absent_xr,
232
  dwe_displaced,
233
  dwe_displ_x,
234
  dwe_moved,
235
  dwe_moved_r,
236
  dwe_moved_x,
237
  dwe_moved_xr,
238
  dwe_optim,
239
  dwe_proc;
240
 
7 7u83 241
extern void init_dw_entries(void);
2 7u83 242
 
7 7u83 243
extern long dw_entry(abbrev_entry en, long attr);
2 7u83 244
 
245
 
246
 
247
	/* general attributes */
248
 
249
#define H_AO	0x1		/* inline abstract origin */
250
#define H_SP	0x2		/* ref specification */
251
#define H_DC	0x4		/* declaration only */
252
#define H_NM	0x8		/* has name */
253
#define H_XY	0x10		/* has source coordinates */
254
#define H_EX	0x20		/* flag for external */
255
#define H_AT	0x40		/* has artificiality */
256
#define H_AC	0x80		/* has accessibility */
257
#define H_TP	0x100		/* has type */
258
#define H_SS	0x200		/* has start scope */
259
#define H_RP	0x400		/* has repn clause */
260
#define H_GN	0x800		/* generic name */
261
#define H_EL	0x1000		/* has elaboration */
262
#define H_SE	0x2000		/* Ada is separate */
263
 
264
	/* attributes for functions */
265
 
266
#define H_PC	0x10000		/* has code address */
267
#define H_CC	0x20000		/* has calling convention */
268
#define H_PT	0x40000		/* has prototype */
269
#define H_IL	0x80000		/* inlined */
270
#define H_VT	0x100000	/* has virtuality */
271
#define H_VL	0x200000	/* vtable elem location */
272
#define H_SL	0x400000	/* has static link */
273
#define H_LN	0x800000	/* has language call convention */
274
 
275
	/* attributes for objects */
276
 
277
#define H_CV	0x10000		/* has const value */
278
#define H_LC	0x20000		/* has single location  */
279
#define H_LL	0x40000		/* has location list */
280
#define H_LE	0x80000		/* has extended loclist */
281
#define H_VP	0x100000	/* variable parameter */
282
#define H_DF	0x200000	/* default value */
283
#if 0
284
#define H_DX	0x400000	/* default existance */
285
#endif
286
 
287
	/* attributes for lex_scopes */
288
 
289
/*	H_PC	0x10000	*/
290
#define H_BG	0x20000		/* has 'BEGIN' */
291
 
292
	/* attributes for types */
293
 
294
#define H_SZ	0x10000		/* has byte size */
295
#define H_NW	0x20000		/* is new */
296
#define H_AD	0x40000		/* Ada derived */
297
 
298
	/* attributes for bounds */
299
 
300
#define H_LB	0x40000		/* lower bound */
301
#define H_UB	0x80000		/* upper bound */
302
#define H_CN	0x100000	/* count */
303
 
304
	/* attributes for members */
305
 
306
/*	H_LC	0x20000	*/
307
#define H_BF	0x10000		/* bitfield */
308
#define H_DS	0x40000		/* discriminant */
309
/*	H_DF	0x100000 */
310
/*	H_DX	0x200000 REMOVE	*/
311
 
312
	/* attributes for class types */
313
 
314
/*	H_AD	0x40000 */
315
#define H_VS	0x100000	/* vtable static */
316
#define H_VD	0x200000	/* vtable dynamic */
317
#define H_RS	0x400000	/* rtti static */
318
#define H_RD	0x800000	/* rtti dynamic */
319
 
320
	/* attributes for Ada tasks and Synchronised types */
321
 
322
#define H_CB	0x100000	/* control block */
323
#define H_ID	0x200000	/* task id */
324
 
325
	/* attributes for constraints */
326
 
327
#define	H_RM	0x800000	/* ref member */
328
/*	H_TP	0x100 */
329
/*	H_CV	0x10000 */
330
 
331
	/* attributes for fixed point type */
332
 
333
/*	H_DF	0x100000    delta */
334
/*	H_DS	0x40000     digits */
335
 
336
#define H_EXTN	0x80000000
337
 
338
#endif