daily update
[deliverable/binutils-gdb.git] / bfd / libieee.h
CommitLineData
252b5132 1/* IEEE-695 object file formats: definitions internal to BFD.
4b95cf5c 2 Copyright (C) 1990-2014 Free Software Foundation, Inc.
252b5132
RH
3 Written by Cygnus Support. Mostly Steve Chamberlain's fault.
4
cd123cb7 5 This file is part of BFD, the Binary File Descriptor library.
252b5132 6
cd123cb7
NC
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
252b5132 11
cd123cb7
NC
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
252b5132 16
cd123cb7
NC
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
252b5132
RH
21
22typedef struct {
23 unsigned int index:24;
24 char letter;
25} ieee_symbol_index_type;
26
27typedef struct ct {
28 bfd *this;
29 struct ct *next;
30} bfd_chain_type;
31
dc810e39 32typedef struct ieee_symbol
252b5132
RH
33{
34 asymbol symbol;
35 struct ieee_symbol *next;
36
37 unsigned int index;
38} ieee_symbol_type;
39
40
41typedef struct ieee_reloc {
42 arelent relent;
43 struct ieee_reloc *next;
44 ieee_symbol_index_type symbol;
45
46} ieee_reloc_type;
47
48#define ieee_symbol(x) ((ieee_symbol_type *)(x))
49
50typedef struct ieee_per_section
51{
52 asection *section;
53 bfd_byte *data;
54 bfd_vma offset;
55 bfd_vma pc;
56 /* For output */
57 file_ptr current_pos;
58 unsigned int current_byte;
b34976b6 59 bfd_boolean initialized;
252b5132
RH
60 ieee_reloc_type **reloc_tail_ptr;
61} ieee_per_section_type;
62
63#define ieee_per_section(x) ((ieee_per_section_type *)((x)->used_by_bfd))
dc810e39 64
252b5132 65typedef struct {
47fda0d3 66 unsigned char *input_p;
252b5132 67 unsigned char *first_byte;
47fda0d3 68 unsigned char *last_byte;
252b5132
RH
69 bfd *abfd;
70} common_header_type ;
71
72typedef struct ieee_data_struct
73{
74 common_header_type h;
b34976b6
AM
75 bfd_boolean read_symbols;
76 bfd_boolean read_data;
252b5132
RH
77 file_ptr output_cursor;
78 /* Map of section indexes to section ptrs */
79 asection **section_table;
80 unsigned int section_table_size;
81 ieee_address_descriptor_type ad;
82 ieee_module_begin_type mb;
83 ieee_w_variable_type w;
dc810e39 84
252b5132 85 unsigned int section_count;
dc810e39 86
252b5132
RH
87 unsigned int map_idx;
88 /* List of GLOBAL EXPORT symbols */
89 ieee_symbol_type *external_symbols;
90 /* List of UNDEFINED symbols */
91 ieee_symbol_type *external_reference;
dc810e39 92
252b5132
RH
93 /* When the symbols have been canonicalized, they are in a
94 * special order, we remember various bases here.. */
95 unsigned int external_symbol_max_index;
96 unsigned int external_symbol_min_index;
97 unsigned int external_symbol_count;
98 int external_symbol_base_offset;
dc810e39 99
252b5132
RH
100 unsigned int external_reference_max_index;
101 unsigned int external_reference_min_index;
102 unsigned int external_reference_count;
103 int external_reference_base_offset;
dc810e39 104
252b5132 105
b34976b6 106 bfd_boolean symbol_table_full;
252b5132 107
dc810e39 108
b34976b6 109bfd_boolean done_debug;
252b5132
RH
110
111
112bfd_chain_type *chain_head;
113bfd_chain_type *chain_root;
114
115} ieee_data_type;
116
117typedef struct {
118 file_ptr file_offset;
119 bfd *abfd;
120} ieee_ar_obstack_type;
121
dc810e39 122typedef struct ieee_ar_data_struct
252b5132
RH
123{
124 common_header_type h;
125 ieee_ar_obstack_type *elements;
dc810e39 126
252b5132
RH
127 unsigned int element_index ;
128 unsigned int element_count;
129
130} ieee_ar_data_type;
131
132#define IEEE_DATA(abfd) ((abfd)->tdata.ieee_data)
133#define IEEE_AR_DATA(abfd) ((abfd)->tdata.ieee_ar_data)
134
135#define ptr(abfd) (ieee_data(abfd)->input_p)
This page took 0.704855 seconds and 4 git commands to generate.