Commit | Line | Data |
---|---|---|
1e6d5d30 JG |
1 | /* BFD internal declarations for Oasys file format handling */ |
2 | /* Scrawled by Steve Chamberlain of Cygnus Support. */ | |
87f86b4e | 3 | |
1e6d5d30 | 4 | /* Copyright (C) 1990, 1991 Free Software Foundation, Inc. |
87f86b4e | 5 | |
1e6d5d30 JG |
6 | This file is part of BFD, the Binary File Diddler. |
7 | ||
8 | BFD is free software; you can redistribute it and/or modify | |
9 | it under the terms of the GNU General Public License as published by | |
10 | the Free Software Foundation; either version 1, or (at your option) | |
11 | any later version. | |
12 | ||
13 | BFD is distributed in the hope that it will be useful, | |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | GNU General Public License for more details. | |
17 | ||
18 | You should have received a copy of the GNU General Public License | |
19 | along with BFD; see the file COPYING. If not, write to | |
20 | the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
21 | ||
22 | ||
23 | typedef struct _oasys_symbol | |
3e9aade1 | 24 | { |
87f86b4e DHW |
25 | asymbol symbol; |
26 | } oasys_symbol_type; | |
27 | ||
1e6d5d30 | 28 | typedef struct _oasys_reloc { |
87f86b4e | 29 | arelent relent; |
1e6d5d30 | 30 | struct _oasys_reloc *next; |
87f86b4e DHW |
31 | unsigned int symbol; |
32 | } oasys_reloc_type; | |
33 | ||
34 | ||
35 | #define oasys_symbol(x) ((oasys_symbol_type *)(x)) | |
36 | #define oasys_per_section(x) ((oasys_per_section_type *)(x->used_by_bfd)) | |
3e9aade1 | 37 | |
1e6d5d30 | 38 | typedef struct _oasys_per_section |
87f86b4e DHW |
39 | { |
40 | asection *section; | |
41 | bfd_byte *data; | |
42 | bfd_vma offset; | |
3e9aade1 | 43 | boolean had_vma; |
87f86b4e DHW |
44 | oasys_reloc_type **reloc_tail_ptr; |
45 | bfd_vma pc; | |
3e9aade1 SC |
46 | |
47 | ||
87f86b4e DHW |
48 | file_ptr current_pos; |
49 | unsigned int current_byte; | |
50 | boolean initialized; | |
51 | } oasys_per_section_type; | |
52 | ||
53 | #define NSECTIONS 10 | |
54 | ||
1e6d5d30 | 55 | typedef struct _oasys_ar_obstack { |
87f86b4e DHW |
56 | file_ptr file_offset; |
57 | bfd *abfd; | |
58 | } oasys_ar_obstack_type; | |
59 | ||
60 | ||
1e6d5d30 | 61 | typedef struct _oasys_module_info { |
87f86b4e DHW |
62 | file_ptr pos; |
63 | unsigned int size; | |
64 | bfd *abfd; | |
1e6d5d30 | 65 | char *name; |
87f86b4e DHW |
66 | } oasys_module_info_type; |
67 | ||
1e6d5d30 | 68 | typedef struct _oasys_ar_data { |
87f86b4e DHW |
69 | oasys_module_info_type *module; |
70 | unsigned int module_count; | |
71 | unsigned int module_index; | |
72 | } oasys_ar_data_type; | |
73 | ||
1e6d5d30 | 74 | typedef struct _oasys_data { |
3e9aade1 | 75 | struct obstack oasys_obstack; |
87f86b4e DHW |
76 | char *strings; |
77 | asymbol *symbols; | |
78 | unsigned int symbol_string_length; | |
79 | asection *sections[OASYS_MAX_SEC_COUNT]; | |
80 | file_ptr first_data_record; | |
81 | } oasys_data_type; | |
82 | ||
83 | #define oasys_data(abfd) ((oasys_data_type *)((abfd)->tdata)) | |
84 | #define oasys_ar_data(abfd) ((oasys_ar_data_type *)((abfd)->tdata)) |