1 |
/* HP PA-RISC SOM object file format: definitions internal to BFD. |
/* HP PA-RISC SOM object file format: definitions internal to BFD. |
2 |
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000 |
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, |
3 |
Free Software Foundation, Inc. |
2002, 2003, 2004 Free Software Foundation, Inc. |
4 |
|
|
5 |
Contributed by the Center for Software Science at the |
Contributed by the Center for Software Science at the |
6 |
University of Utah (pa-gdb-bugs@cs.utah.edu). |
University of Utah (pa-gdb-bugs@cs.utah.edu). |
27 |
|
|
28 |
#include "libhppa.h" |
#include "libhppa.h" |
29 |
|
|
30 |
|
/* We want reloc.h to provide PA 2.0 defines. */ |
31 |
|
#define PA_2_0 |
32 |
|
|
33 |
#include <a.out.h> |
#include <a.out.h> |
34 |
#include <lst.h> |
#include <lst.h> |
35 |
#include <ar.h> |
#include <ar.h> |
143 |
struct somdata a; |
struct somdata a; |
144 |
}; |
}; |
145 |
|
|
146 |
|
struct som_subspace_dictionary_record |
147 |
|
{ |
148 |
|
int space_index; |
149 |
|
unsigned int access_control_bits : 7; |
150 |
|
unsigned int memory_resident : 1; |
151 |
|
unsigned int dup_common : 1; |
152 |
|
unsigned int is_common : 1; |
153 |
|
unsigned int is_loadable : 1; |
154 |
|
unsigned int quadrant : 2; |
155 |
|
unsigned int initially_frozen : 1; |
156 |
|
unsigned int is_first : 1; |
157 |
|
unsigned int code_only : 1; |
158 |
|
unsigned int sort_key : 8; |
159 |
|
unsigned int replicate_init : 1; |
160 |
|
unsigned int continuation : 1; |
161 |
|
unsigned int is_tspecific : 1; |
162 |
|
unsigned int is_comdat : 1; |
163 |
|
unsigned int reserved : 4; |
164 |
|
int file_loc_init_value; |
165 |
|
unsigned int initialization_length; |
166 |
|
unsigned int subspace_start; |
167 |
|
unsigned int subspace_length; |
168 |
|
unsigned int reserved2 : 5; |
169 |
|
unsigned int alignment :27; |
170 |
|
union name_pt name; |
171 |
|
int fixup_request_index; |
172 |
|
unsigned int fixup_request_quantity; |
173 |
|
}; |
174 |
|
|
175 |
/* Substructure of som_section_data_struct used to hold information |
/* Substructure of som_section_data_struct used to hold information |
176 |
which can't be represented by the generic BFD section structure, |
which can't be represented by the generic BFD section structure, |
177 |
but which must be copied during objcopy or strip. */ |
but which must be copied during objcopy or strip. */ |
184 |
unsigned int is_defined : 1; |
unsigned int is_defined : 1; |
185 |
unsigned int is_private : 1; |
unsigned int is_private : 1; |
186 |
unsigned int quadrant : 2; |
unsigned int quadrant : 2; |
187 |
|
unsigned int is_comdat : 1; |
188 |
|
unsigned int is_common : 1; |
189 |
|
unsigned int dup_common : 1; |
190 |
|
|
191 |
/* For subspaces, this points to the section which represents the |
/* For subspaces, this points to the section which represents the |
192 |
space in which the subspace is contained. For spaces it points |
space in which the subspace is contained. For spaces it points |
216 |
unsigned int reloc_size; |
unsigned int reloc_size; |
217 |
char *reloc_stream; |
char *reloc_stream; |
218 |
struct space_dictionary_record *space_dict; |
struct space_dictionary_record *space_dict; |
219 |
struct subspace_dictionary_record *subspace_dict; |
struct som_subspace_dictionary_record *subspace_dict; |
220 |
}; |
}; |
221 |
|
|
222 |
#define somdata(bfd) ((bfd)->tdata.som_data->a) |
#define somdata(bfd) ((bfd)->tdata.som_data->a) |
242 |
should be internal to the BFD backend. |
should be internal to the BFD backend. |
243 |
|
|
244 |
The idea is both SOM and ELF define these basic relocation |
The idea is both SOM and ELF define these basic relocation |
245 |
types so they map into a SOM or ELF specific reloation as |
types so they map into a SOM or ELF specific relocation as |
246 |
appropriate. This allows GAS to share much more code |
appropriate. This allows GAS to share much more code |
247 |
between the two object formats. */ |
between the two object formats. */ |
248 |
|
|
260 |
#define R_HPPA_END_TRY R_END_TRY |
#define R_HPPA_END_TRY R_END_TRY |
261 |
|
|
262 |
/* Exported functions, mostly for use by GAS. */ |
/* Exported functions, mostly for use by GAS. */ |
263 |
boolean bfd_som_set_section_attributes PARAMS ((asection *, int, int, |
bfd_boolean bfd_som_set_section_attributes |
264 |
unsigned int, int)); |
PARAMS ((asection *, int, int, unsigned int, int)); |
265 |
boolean bfd_som_set_subsection_attributes PARAMS ((asection *, asection *, |
bfd_boolean bfd_som_set_subsection_attributes |
266 |
int, unsigned int, int)); |
PARAMS ((asection *, asection *, int, unsigned int, int, int, int, int)); |
267 |
void bfd_som_set_symbol_type PARAMS ((asymbol *, unsigned int)); |
void bfd_som_set_symbol_type PARAMS ((asymbol *, unsigned int)); |
268 |
boolean bfd_som_attach_aux_hdr PARAMS ((bfd *, int, char *)); |
bfd_boolean bfd_som_attach_aux_hdr PARAMS ((bfd *, int, char *)); |
269 |
int ** hppa_som_gen_reloc_type |
int ** hppa_som_gen_reloc_type |
270 |
PARAMS ((bfd *, int, int, enum hppa_reloc_field_selector_type_alt, |
PARAMS ((bfd *, int, int, enum hppa_reloc_field_selector_type_alt, |
271 |
int, asymbol *)); |
int, asymbol *)); |
272 |
boolean bfd_som_attach_compilation_unit |
bfd_boolean bfd_som_attach_compilation_unit |
273 |
PARAMS ((bfd *, const char *, const char *, const char *, const char *)); |
PARAMS ((bfd *, const char *, const char *, const char *, const char *)); |
274 |
|
|
275 |
#endif /* _SOM_H */ |
#endif /* _SOM_H */ |