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