aboutsummaryrefslogtreecommitdiff
path: root/bfd/libieee.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/libieee.h')
-rw-r--r--bfd/libieee.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/bfd/libieee.h b/bfd/libieee.h
new file mode 100644
index 0000000..aefc5fd
--- /dev/null
+++ b/bfd/libieee.h
@@ -0,0 +1,90 @@
+typedef struct {
+ unsigned int index:24;
+ char letter;
+} ieee_symbol_index_type;
+
+typedef struct ieee_symbol_struct {
+ asymbol symbol;
+ struct ieee_symbol_struct *next;
+
+unsigned int index;
+} ieee_symbol_type;
+
+
+typedef struct ieee_reloc_struct {
+ arelent relent;
+ struct ieee_reloc_struct *next;
+ ieee_symbol_index_type symbol;
+
+} ieee_reloc_type;
+
+#define ieee_symbol(x) ((ieee_symbol_type *)(x))
+
+typedef struct ieee_per_section_struct
+{
+ asection *section;
+ bfd_byte *data;
+ bfd_vma offset;
+ struct obstack reloc_obstack;
+ ieee_reloc_type **reloc_tail_ptr;
+bfd_vma pc;
+ /* For output */
+ file_ptr current_pos;
+ unsigned int current_byte;
+ boolean initialized;
+} ieee_per_section_type;
+
+#define ieee_per_section(x) ((ieee_per_section_type *)((x)->used_by_bfd))
+#define NSECTIONS 10
+
+
+
+typedef struct {
+ boolean read_symbols;
+boolean read_data;
+ file_ptr output_cursor;
+ /* Map of section indexes to section ptrs */
+ asection * section_table[NSECTIONS];
+ ieee_address_descriptor_type ad;
+ ieee_module_begin_type mb;
+ ieee_w_variable_type w;
+
+ unsigned int section_count;
+
+ unsigned int map_idx;
+ /* List of GLOBAL EXPORT symbols */
+ ieee_symbol_type *external_symbols;
+ /* List of UNDEFINED symbols */
+ ieee_symbol_type *external_reference;
+
+/* When the symbols have been canonicalized, they are in a
+ * special order, we remember various bases here.. */
+ unsigned int external_symbol_max_index;
+ unsigned int external_symbol_min_index;
+ unsigned int external_symbol_count;
+ int external_symbol_base_offset;
+
+ unsigned int external_reference_max_index;
+ unsigned int external_reference_min_index;
+ unsigned int external_reference_count;
+ int external_reference_base_offset;
+
+
+boolean symbol_table_full;
+} ieee_data_type;
+
+typedef struct {
+ file_ptr file_offset;
+ bfd *abfd;
+} ieee_ar_obstack_type;
+
+typedef struct {
+ ieee_ar_obstack_type *elements;
+ struct obstack element_obstack;
+ unsigned int element_index ;
+ unsigned int element_count;
+} ieee_ar_data_type;
+#define ieee_data(abfd) ((ieee_data_type *)((abfd)->tdata))
+#define ieee_ar_data(abfd) ((ieee_ar_data_type *)((abfd)->tdata))
+
+