Merge in changes from gdb-3.95 release into mainstream of BFD development.
[deliverable/binutils-gdb.git] / bfd / libieee.h
CommitLineData
87f86b4e
DHW
1typedef struct {
2 unsigned int index:24;
3 char letter;
4} ieee_symbol_index_type;
5
fc723380 6typedef struct ieee_symbol {
87f86b4e 7 asymbol symbol;
fc723380 8 struct ieee_symbol *next;
87f86b4e
DHW
9
10unsigned int index;
11} ieee_symbol_type;
12
13
fc723380 14typedef struct ieee_reloc {
87f86b4e 15 arelent relent;
fc723380 16 struct ieee_reloc *next;
87f86b4e
DHW
17 ieee_symbol_index_type symbol;
18
19} ieee_reloc_type;
20
21#define ieee_symbol(x) ((ieee_symbol_type *)(x))
22
fc723380 23typedef struct ieee_per_section
87f86b4e
DHW
24{
25 asection *section;
26 bfd_byte *data;
27 bfd_vma offset;
fc723380 28 bfd_vma pc;
87f86b4e
DHW
29 /* For output */
30 file_ptr current_pos;
31 unsigned int current_byte;
32 boolean initialized;
fc723380 33 ieee_reloc_type **reloc_tail_ptr;
87f86b4e
DHW
34} ieee_per_section_type;
35
36#define ieee_per_section(x) ((ieee_per_section_type *)((x)->used_by_bfd))
37#define NSECTIONS 10
38
39
40
a0ad3035
SC
41typedef struct
42{
87f86b4e 43 boolean read_symbols;
fc723380 44 boolean read_data;
a0ad3035
SC
45 unsigned char *input_p;
46 unsigned char *first_byte;
87f86b4e
DHW
47 file_ptr output_cursor;
48 /* Map of section indexes to section ptrs */
fc723380 49 asection * section_table[NSECTIONS];
87f86b4e
DHW
50 ieee_address_descriptor_type ad;
51 ieee_module_begin_type mb;
52 ieee_w_variable_type w;
a0ad3035 53
87f86b4e 54 unsigned int section_count;
a0ad3035 55
87f86b4e
DHW
56 unsigned int map_idx;
57 /* List of GLOBAL EXPORT symbols */
58 ieee_symbol_type *external_symbols;
fc723380 59 /* List of UNDEFINED symbols */
87f86b4e 60 ieee_symbol_type *external_reference;
a0ad3035 61
fc723380 62 /* When the symbols have been canonicalized, they are in a
a0ad3035 63 * special order, we remember various bases here.. */
87f86b4e
DHW
64 unsigned int external_symbol_max_index;
65 unsigned int external_symbol_min_index;
66 unsigned int external_symbol_count;
67 int external_symbol_base_offset;
a0ad3035 68
87f86b4e
DHW
69 unsigned int external_reference_max_index;
70 unsigned int external_reference_min_index;
71 unsigned int external_reference_count;
72 int external_reference_base_offset;
a0ad3035
SC
73
74 bfd *abfd;
fc723380 75 boolean symbol_table_full;
87f86b4e
DHW
76} ieee_data_type;
77
78typedef struct {
79 file_ptr file_offset;
80 bfd *abfd;
81} ieee_ar_obstack_type;
82
83typedef struct {
84 ieee_ar_obstack_type *elements;
85 struct obstack element_obstack;
86 unsigned int element_index ;
87 unsigned int element_count;
88} ieee_ar_data_type;
89#define ieee_data(abfd) ((ieee_data_type *)((abfd)->tdata))
fc723380 90#define ieee_ar_data(abfd) ((ieee_ar_data_type *)((abfd)->arelt_data))
87f86b4e
DHW
91
92
fc723380 93#define ptr(abfd) (ieee_data(abfd)->input_p)
This page took 0.02908 seconds and 4 git commands to generate.