Commit | Line | Data |
---|---|---|
252b5132 | 1 | /* BFD internal declarations for Oasys file format handling. |
b90efa5b | 2 | Copyright (C) 1990-2015 Free Software Foundation, Inc. |
252b5132 RH |
3 | Scrawled by Steve Chamberlain of Cygnus Support. |
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 | |
22 | typedef struct _oasys_symbol | |
23 | { | |
24 | asymbol symbol; | |
25 | } oasys_symbol_type; | |
26 | ||
27 | typedef struct _oasys_reloc { | |
28 | arelent relent; | |
29 | struct _oasys_reloc *next; | |
30 | unsigned int symbol; | |
31 | } oasys_reloc_type; | |
32 | ||
33 | ||
34 | #define oasys_symbol(x) ((oasys_symbol_type *)(x)) | |
35 | #define oasys_per_section(x) ((oasys_per_section_type *)(x->used_by_bfd)) | |
36 | ||
37 | typedef struct _oasys_per_section | |
38 | { | |
39 | asection *section; | |
40 | bfd_byte *data; | |
41 | bfd_vma offset; | |
b34976b6 | 42 | bfd_boolean had_vma; |
252b5132 RH |
43 | oasys_reloc_type **reloc_tail_ptr; |
44 | bfd_vma pc; | |
45 | ||
46 | ||
47 | file_ptr current_pos; | |
48 | unsigned int current_byte; | |
b34976b6 | 49 | bfd_boolean initialized; |
252b5132 RH |
50 | } oasys_per_section_type; |
51 | ||
52 | #define NSECTIONS 10 | |
53 | ||
54 | typedef struct _oasys_ar_obstack { | |
55 | file_ptr file_offset; | |
56 | bfd *abfd; | |
57 | } oasys_ar_obstack_type; | |
58 | ||
59 | ||
60 | typedef struct _oasys_module_info { | |
61 | file_ptr pos; | |
62 | unsigned int size; | |
63 | bfd *abfd; | |
64 | char *name; | |
65 | } oasys_module_info_type; | |
66 | ||
67 | typedef struct _oasys_ar_data { | |
68 | oasys_module_info_type *module; | |
69 | unsigned int module_count; | |
70 | unsigned int module_index; | |
71 | } oasys_ar_data_type; | |
72 | ||
73 | typedef struct _oasys_data { | |
74 | char *strings; | |
75 | asymbol *symbols; | |
76 | unsigned int symbol_string_length; | |
77 | asection *sections[OASYS_MAX_SEC_COUNT]; | |
78 | file_ptr first_data_record; | |
79 | } oasys_data_type; | |
80 | ||
81 | #define OASYS_DATA(abfd) ((abfd)->tdata.oasys_obj_data) | |
82 | #define OASYS_AR_DATA(abfd) ((abfd)->tdata.oasys_ar_data) | |
83 |