OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.3/] [gdb/] [ada-lang.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1181 sfurman
/* Ada language support definitions for GDB, the GNU debugger.
2
   Copyright 1992, 1997 Free Software Foundation, Inc.
3
 
4
This file is part of GDB.
5
 
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2 of the License, or
9
(at your option) any later version.
10
 
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
GNU General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with this program; if not, write to the Free Software
18
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
19
 
20
#if !defined (ADA_LANG_H)
21
#define ADA_LANG_H 1
22
 
23
#include "value.h"
24
#include "gdbtypes.h"
25
 
26
/* A macro to reorder the bytes of an address depending on the endiannes
27
   of the target */
28
#define EXTRACT_ADDRESS(x) ((void *) extract_address (&(x), sizeof (x)))
29
/* A macro to reorder the bytes of an int depending on the endiannes
30
   of the target */
31
#define EXTRACT_INT(x) ((int) extract_signed_integer (&(x), sizeof (x)))
32
 
33
/* Chain of cleanups for arguments of OP_UNRESOLVED_VALUE names.  Created in
34
   yyparse and freed in ada_resolve. */
35
extern struct cleanup *unresolved_names;
36
 
37
/* Corresponding mangled/demangled names and opcodes for Ada user-definable
38
   operators. */
39
struct ada_opname_map
40
{
41
  const char *mangled;
42
  const char *demangled;
43
  enum exp_opcode op;
44
};
45
 
46
/* Table of Ada operators in mangled and demangled forms. */
47
/* Defined in ada-lang.c */
48
extern const struct ada_opname_map ada_opname_table[];
49
 
50
/* The maximum number of tasks known to the Ada runtime */
51
extern const int MAX_NUMBER_OF_KNOWN_TASKS;
52
 
53
/* Identifiers for Ada attributes that need special processing.  Be sure
54
   to update the table attribute_names in ada-lang.c whenever you change this.
55
   */
56
 
57
enum ada_attribute
58
{
59
  /* Invalid attribute for error checking. */
60
  ATR_INVALID,
61
 
62
  ATR_FIRST,
63
  ATR_LAST,
64
  ATR_LENGTH,
65
  ATR_IMAGE,
66
  ATR_IMG,
67
  ATR_MAX,
68
  ATR_MIN,
69
  ATR_MODULUS,
70
  ATR_POS,
71
  ATR_SIZE,
72
  ATR_TAG,
73
  ATR_VAL,
74
 
75
  /* Dummy last attribute. */
76
  ATR_END
77
};
78
 
79
enum task_states
80
{
81
  Unactivated,
82
  Runnable,
83
  Terminated,
84
  Activator_Sleep,
85
  Acceptor_Sleep,
86
  Entry_Caller_Sleep,
87
  Async_Select_Sleep,
88
  Delay_Sleep,
89
  Master_Completion_Sleep,
90
  Master_Phase_2_Sleep
91
};
92
 
93
extern char *ada_task_states[];
94
 
95
typedef struct
96
{
97
  char *P_ARRAY;
98
  int *P_BOUNDS;
99
}
100
fat_string;
101
 
102
typedef struct entry_call
103
{
104
  void *self;
105
}
106
 *entry_call_link;
107
 
108
struct task_fields
109
{
110
  int entry_num;
111
#if (defined (VXWORKS_TARGET) || !defined (i386)) \
112
    && !(defined (VXWORKS_TARGET) && defined (M68K_TARGET))
113
  int pad1;
114
#endif
115
  char state;
116
#if (defined (VXWORKS_TARGET) && defined (M68K_TARGET))
117
  char pad_8bits;
118
#endif
119
  void *parent;
120
  int priority;
121
  int current_priority;
122
  fat_string image;
123
  entry_call_link call;
124
#if (defined (sun) && defined (__SVR4)) && !defined (VXWORKS_TARGET)
125
  int pad2;
126
  unsigned thread;
127
  unsigned lwp;
128
#else
129
  void *thread;
130
  void *lwp;
131
#endif
132
}
133
#if (defined (VXWORKS_TARGET) && defined (M68K_TARGET))
134
__attribute__ ((packed))
135
#endif
136
  ;
137
 
138
struct task_entry
139
{
140
  void *task_id;
141
  int task_num;
142
  int known_tasks_index;
143
  struct task_entry *next_task;
144
  void *thread;
145
  void *lwp;
146
  int stack_per;
147
};
148
 
149
extern struct type *builtin_type_ada_int;
150
extern struct type *builtin_type_ada_short;
151
extern struct type *builtin_type_ada_long;
152
extern struct type *builtin_type_ada_long_long;
153
extern struct type *builtin_type_ada_char;
154
extern struct type *builtin_type_ada_float;
155
extern struct type *builtin_type_ada_double;
156
extern struct type *builtin_type_ada_long_double;
157
extern struct type *builtin_type_ada_natural;
158
extern struct type *builtin_type_ada_positive;
159
extern struct type *builtin_type_ada_system_address;
160
 
161
/* Assuming V points to an array of S objects,  make sure that it contains at
162
   least M objects, updating V and S as necessary. */
163
 
164
#define GROW_VECT(v, s, m)                                              \
165
   if ((s) < (m)) grow_vect ((void**) &(v), &(s), (m), sizeof(*(v)));
166
 
167
extern void grow_vect (void **, size_t *, size_t, int);
168
 
169
extern int ada_parse (void);    /* Defined in ada-exp.y */
170
 
171
extern void ada_error (char *); /* Defined in ada-exp.y */
172
 
173
                        /* Defined in ada-typeprint.c */
174
extern void ada_print_type (struct type *, char *, struct ui_file *, int,
175
                            int);
176
 
177
extern int ada_val_print (struct type *, char *, int, CORE_ADDR,
178
                          struct ui_file *, int, int, int,
179
                          enum val_prettyprint);
180
 
181
extern int ada_value_print (struct value *, struct ui_file *, int,
182
                            enum val_prettyprint);
183
 
184
                                /* Defined in ada-lang.c */
185
 
186
extern struct value *value_from_contents_and_address (struct type *, char *,
187
                                                      CORE_ADDR);
188
 
189
extern void ada_emit_char (int, struct ui_file *, int, int);
190
 
191
extern void ada_printchar (int, struct ui_file *);
192
 
193
extern void ada_printstr (struct ui_file *, char *, unsigned int, int, int);
194
 
195
extern void ada_convert_actuals (struct value *, int, struct value **,
196
                                 CORE_ADDR *);
197
 
198
extern struct value *ada_value_subscript (struct value *, int,
199
                                          struct value **);
200
 
201
extern struct type *ada_array_element_type (struct type *, int);
202
 
203
extern int ada_array_arity (struct type *);
204
 
205
struct type *ada_type_of_array (struct value *, int);
206
 
207
extern struct value *ada_coerce_to_simple_array (struct value *);
208
 
209
extern struct value *ada_coerce_to_simple_array_ptr (struct value *);
210
 
211
extern int ada_is_simple_array (struct type *);
212
 
213
extern int ada_is_array_descriptor (struct type *);
214
 
215
extern int ada_is_bogus_array_descriptor (struct type *);
216
 
217
extern struct type *ada_index_type (struct type *, int);
218
 
219
extern struct value *ada_array_bound (struct value *, int, int);
220
 
221
extern int ada_lookup_symbol_list (const char *, struct block *,
222
                                   namespace_enum, struct symbol ***,
223
                                   struct block ***);
224
 
225
extern char *ada_fold_name (const char *);
226
 
227
extern struct symbol *ada_lookup_symbol (const char *, struct block *,
228
                                         namespace_enum);
229
 
230
extern struct minimal_symbol *ada_lookup_minimal_symbol (const char *);
231
 
232
extern void ada_resolve (struct expression **, struct type *);
233
 
234
extern int ada_resolve_function (struct symbol **, struct block **, int,
235
                                 struct value **, int, const char *,
236
                                 struct type *);
237
 
238
extern void ada_fill_in_ada_prototype (struct symbol *);
239
 
240
extern int user_select_syms (struct symbol **, struct block **, int, int);
241
 
242
extern int get_selections (int *, int, int, int, char *);
243
 
244
extern char *ada_start_decode_line_1 (char *);
245
 
246
extern struct symtabs_and_lines ada_finish_decode_line_1 (char **,
247
                                                          struct symtab *,
248
                                                          int, char ***);
249
 
250
extern int ada_scan_number (const char *, int, LONGEST *, int *);
251
 
252
extern struct type *ada_parent_type (struct type *);
253
 
254
extern int ada_is_ignored_field (struct type *, int);
255
 
256
extern int ada_is_packed_array_type (struct type *);
257
 
258
extern struct value *ada_value_primitive_packed_val (struct value *, char *,
259
                                                     long, int, int,
260
                                                     struct type *);
261
 
262
extern struct type *ada_coerce_to_simple_array_type (struct type *);
263
 
264
extern int ada_is_character_type (struct type *);
265
 
266
extern int ada_is_string_type (struct type *);
267
 
268
extern int ada_is_tagged_type (struct type *);
269
 
270
extern struct type *ada_tag_type (struct value *);
271
 
272
extern struct value *ada_value_tag (struct value *);
273
 
274
extern int ada_is_parent_field (struct type *, int);
275
 
276
extern int ada_is_wrapper_field (struct type *, int);
277
 
278
extern int ada_is_variant_part (struct type *, int);
279
 
280
extern struct type *ada_variant_discrim_type (struct type *, struct type *);
281
 
282
extern int ada_is_others_clause (struct type *, int);
283
 
284
extern int ada_in_variant (LONGEST, struct type *, int);
285
 
286
extern char *ada_variant_discrim_name (struct type *);
287
 
288
extern struct type *ada_lookup_struct_elt_type (struct type *, char *, int,
289
                                                int *);
290
 
291
extern struct value *ada_value_struct_elt (struct value *, char *, char *);
292
 
293
extern struct value *ada_search_struct_field (char *, struct value *, int,
294
                                              struct type *);
295
 
296
extern int ada_is_aligner_type (struct type *);
297
 
298
extern struct type *ada_aligned_type (struct type *);
299
 
300
extern char *ada_aligned_value_addr (struct type *, char *);
301
 
302
extern const char *ada_attribute_name (int);
303
 
304
extern int ada_is_fixed_point_type (struct type *);
305
 
306
extern DOUBLEST ada_delta (struct type *);
307
 
308
extern DOUBLEST ada_fixed_to_float (struct type *, LONGEST);
309
 
310
extern LONGEST ada_float_to_fixed (struct type *, DOUBLEST);
311
 
312
extern int ada_is_vax_floating_type (struct type *);
313
 
314
extern int ada_vax_float_type_suffix (struct type *);
315
 
316
extern struct value *ada_vax_float_print_function (struct type *);
317
 
318
extern struct type *ada_system_address_type (void);
319
 
320
extern int ada_which_variant_applies (struct type *, struct type *, char *);
321
 
322
extern struct value *ada_to_fixed_value (struct type *, char *, CORE_ADDR,
323
                                         struct value *);
324
 
325
extern struct type *ada_to_fixed_type (struct type *, char *, CORE_ADDR,
326
                                       struct value *);
327
 
328
extern int ada_name_prefix_len (const char *);
329
 
330
extern char *ada_type_name (struct type *);
331
 
332
extern struct type *ada_find_parallel_type (struct type *,
333
                                            const char *suffix);
334
 
335
extern LONGEST get_int_var_value (char *, char *, int *);
336
 
337
extern struct type *ada_find_any_type (const char *name);
338
 
339
extern int ada_prefer_type (struct type *, struct type *);
340
 
341
extern struct type *ada_get_base_type (struct type *);
342
 
343
extern struct type *ada_completed_type (struct type *);
344
 
345
extern char *ada_mangle (const char *);
346
 
347
extern const char *ada_enum_name (const char *);
348
 
349
extern int ada_is_modular_type (struct type *);
350
 
351
extern LONGEST ada_modulus (struct type *);
352
 
353
extern struct value *ada_value_ind (struct value *);
354
 
355
extern void ada_print_scalar (struct type *, LONGEST, struct ui_file *);
356
 
357
extern int ada_is_range_type_name (const char *);
358
 
359
extern const char *ada_renaming_type (struct type *);
360
 
361
extern int ada_is_object_renaming (struct symbol *);
362
 
363
extern const char *ada_simple_renamed_entity (struct symbol *);
364
 
365
extern char *ada_breakpoint_rewrite (char *, int *);
366
 
367
/* Tasking-related: ada-tasks.c */
368
 
369
extern int valid_task_id (int);
370
 
371
extern int get_current_task (void);
372
 
373
extern void init_task_list (void);
374
 
375
extern void *get_self_id (void);
376
 
377
extern int get_current_task (void);
378
 
379
extern int get_entry_number (void *);
380
 
381
extern void ada_report_exception_break (struct breakpoint *);
382
 
383
extern int ada_maybe_exception_partial_symbol (struct partial_symbol *sym);
384
 
385
extern int ada_is_exception_sym (struct symbol *sym);
386
 
387
 
388
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.