* targets.c (bfd_target): Make ar_max_namelen an unsigned char.
[deliverable/binutils-gdb.git] / bfd / nlm-target.h
CommitLineData
252b5132 1/* Target definitions for 32/64-bit NLM (NetWare Loadable Module)
7920ce38 2 Copyright 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
0aabe54e 3 2005, 2007, 2009, 2011 Free Software Foundation, Inc.
252b5132 4
7920ce38 5 This file is part of BFD, the Binary File Descriptor library.
252b5132 6
7920ce38
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
cd123cb7 9 the Free Software Foundation; either version 3 of the License, or
7920ce38 10 (at your option) any later version.
252b5132 11
7920ce38
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
7920ce38
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
cd123cb7
NC
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
252b5132
RH
21
22#define nlm_core_file_p _bfd_dummy_target
23
7920ce38
NC
24#define nlm_get_symtab_upper_bound nlmNAME (get_symtab_upper_bound)
25#define nlm_canonicalize_symtab nlmNAME (canonicalize_symtab)
26#define nlm_make_empty_symbol nlmNAME (make_empty_symbol)
27#define nlm_print_symbol nlmNAME (print_symbol)
28#define nlm_get_symbol_info nlmNAME (get_symbol_info)
29#define nlm_bfd_is_local_label_name bfd_generic_is_local_label_name
30#define nlm_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
31#define nlm_get_lineno _bfd_nosymbols_get_lineno
32#define nlm_find_nearest_line _bfd_nosymbols_find_nearest_line
4ab527b0 33#define nlm_find_inliner_info _bfd_nosymbols_find_inliner_info
7920ce38
NC
34#define nlm_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
35#define nlm_read_minisymbols _bfd_generic_read_minisymbols
36#define nlm_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
37
38#define nlm_get_reloc_upper_bound nlmNAME (get_reloc_upper_bound)
39#define nlm_canonicalize_reloc nlmNAME (canonicalize_reloc)
40#define nlm_bfd_reloc_type_lookup bfd_default_reloc_type_lookup
157090f7 41#define nlm_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup
7920ce38
NC
42#define nlm_set_section_contents nlmNAME (set_section_contents)
43
44#define nlm_sizeof_headers _bfd_nolink_sizeof_headers
45#define nlm_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents
46#define nlm_bfd_relax_section bfd_generic_relax_section
47#define nlm_bfd_gc_sections bfd_generic_gc_sections
48#define nlm_bfd_merge_sections bfd_generic_merge_sections
49#define nlm_bfd_is_group_section bfd_generic_is_group_section
50#define nlm_bfd_discard_group bfd_generic_discard_group
51#define nlm_section_already_linked _bfd_generic_section_already_linked
3023e3f6 52#define nlm_bfd_define_common_symbol bfd_generic_define_common_symbol
7920ce38
NC
53#define nlm_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
54#define nlm_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
55#define nlm_bfd_link_add_symbols _bfd_generic_link_add_symbols
56#define nlm_bfd_link_just_syms _bfd_generic_link_just_syms
1338dd10
PB
57#define nlm_bfd_copy_link_hash_symbol_type \
58 _bfd_generic_copy_link_hash_symbol_type
7920ce38
NC
59#define nlm_bfd_final_link _bfd_generic_final_link
60#define nlm_bfd_link_split_section _bfd_generic_link_split_section
252b5132
RH
61
62/* This structure contains everything that BFD knows about a target.
63 It includes things like its byte order, name, what routines to call
64 to do various operations, etc. Every BFD points to a target structure
65 with its "xvec" member.
66
67 There are two such structures here: one for big-endian machines and
68 one for little-endian machines. */
69
c3c89269
NC
70/* Forward declaration for use when initialising alternative_target field. */
71#ifdef TARGET_LITTLE_SYM
72extern const bfd_target TARGET_LITTLE_SYM;
73#endif
252b5132
RH
74
75#ifdef TARGET_BIG_SYM
76const bfd_target TARGET_BIG_SYM =
77{
7920ce38 78 /* Name: identify kind of target. */
252b5132
RH
79 TARGET_BIG_NAME,
80
7920ce38 81 /* Flavour: general indication about file. */
252b5132
RH
82 bfd_target_nlm_flavour,
83
7920ce38 84 /* Byteorder: data is big endian. */
252b5132
RH
85 BFD_ENDIAN_BIG,
86
7920ce38 87 /* Header_byteorder: header is also big endian. */
252b5132
RH
88 BFD_ENDIAN_BIG,
89
7920ce38 90 /* Object_flags: mask of all file flags. */
252b5132
RH
91 (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS
92 | WP_TEXT),
1518639e 93
7920ce38
NC
94 /* Section_flags: mask of all section flags. */
95 (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY
96 | SEC_CODE | SEC_DATA),
252b5132 97
7920ce38
NC
98 /* Leading_symbol_char: is the first char of a user symbol
99 predictable, and if so what is it. */
252b5132
RH
100 0,
101
7920ce38 102 /* AR_pad_char: pad character for filenames within an archive header
252b5132 103 FIXME: this really has nothing to do with NLM, this is a characteristic
7920ce38 104 of the archiver and/or os and should be independently tunable. */
252b5132
RH
105 '/',
106
7920ce38 107 /* AR_max_namelen: maximum number of characters in an archive header
252b5132
RH
108 FIXME: this really has nothing to do with NLM, this is a characteristic
109 of the archiver and should be independently tunable. This value is
7920ce38 110 a WAG (wild a** guess). */
252b5132 111 15,
0aabe54e 112 0, /* match priority. */
252b5132 113
7920ce38 114 /* Routines to byte-swap various sized integers from the data sections. */
252b5132 115 bfd_getb64, bfd_getb_signed_64, bfd_putb64,
7920ce38
NC
116 bfd_getb32, bfd_getb_signed_32, bfd_putb32,
117 bfd_getb16, bfd_getb_signed_16, bfd_putb16,
252b5132 118
7920ce38 119 /* Routines to byte-swap various sized integers from the file headers. */
252b5132 120 bfd_getb64, bfd_getb_signed_64, bfd_putb64,
7920ce38
NC
121 bfd_getb32, bfd_getb_signed_32, bfd_putb32,
122 bfd_getb16, bfd_getb_signed_16, bfd_putb16,
123
124 /* bfd_check_format: check the format of a file being read. */
125 { _bfd_dummy_target, /* Unknown format. */
126 nlmNAME (object_p), /* Assembler/linker output (object file). */
127 bfd_generic_archive_p, /* An archive. */
128 nlm_core_file_p /* A core file. */
252b5132
RH
129 },
130
7920ce38 131 /* bfd_set_format: set the format of a file being written. */
252b5132
RH
132 { bfd_false,
133 nlm_mkobject,
134 _bfd_generic_mkarchive,
135 bfd_false
136 },
137
7920ce38 138 /* bfd_write_contents: write cached information into a file being written. */
252b5132 139 { bfd_false,
7920ce38 140 nlmNAME (write_object_contents),
252b5132
RH
141 _bfd_write_archive_contents,
142 bfd_false
143 },
144
7920ce38
NC
145 /* Initialize a jump table with the standard macro.
146 All names start with "nlm". */
252b5132
RH
147 BFD_JUMP_TABLE_GENERIC (_bfd_generic),
148 BFD_JUMP_TABLE_COPY (_bfd_generic),
149 BFD_JUMP_TABLE_CORE (_bfd_nocore),
150 BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
151 BFD_JUMP_TABLE_SYMBOLS (nlm),
152 BFD_JUMP_TABLE_RELOCS (nlm),
153 BFD_JUMP_TABLE_WRITE (nlm),
154 BFD_JUMP_TABLE_LINK (nlm),
155 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
156
c3c89269
NC
157 /* Alternative endian target. */
158#ifdef TARGET_LITTLE_SYM
159 & TARGET_LITTLE_SYM,
160#else
161 NULL,
162#endif
1518639e 163
7920ce38
NC
164 /* Backend_data. */
165 (void *) TARGET_BACKEND_DATA
252b5132
RH
166};
167#endif
168
169#ifdef TARGET_LITTLE_SYM
170const bfd_target TARGET_LITTLE_SYM =
171{
7920ce38 172 /* Name: identify kind of target. */
252b5132
RH
173 TARGET_LITTLE_NAME,
174
7920ce38 175 /* Flavour: general indication about file. */
252b5132
RH
176 bfd_target_nlm_flavour,
177
7920ce38 178 /* Byteorder: data is little endian. */
252b5132
RH
179 BFD_ENDIAN_LITTLE,
180
7920ce38 181 /* Header_byteorder: header is also little endian. */
252b5132
RH
182 BFD_ENDIAN_LITTLE,
183
7920ce38 184 /* Object_flags: mask of all file flags. */
252b5132
RH
185 (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS
186 | WP_TEXT),
1518639e 187
7920ce38
NC
188 /* Section_flags: mask of all section flags. */
189 (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY
190 | SEC_DATA),
252b5132 191
7920ce38
NC
192 /* Leading_symbol_char: is the first char of a user symbol
193 predictable, and if so what is it. */
252b5132
RH
194 0,
195
7920ce38 196 /* AR_pad_char: pad character for filenames within an archive header
252b5132 197 FIXME: this really has nothing to do with NLM, this is a characteristic
7920ce38 198 of the archiver and/or os and should be independently tunable. */
252b5132
RH
199 '/',
200
7920ce38 201 /* AR_max_namelen: maximum number of characters in an archive header
252b5132
RH
202 FIXME: this really has nothing to do with NLM, this is a characteristic
203 of the archiver and should be independently tunable. This value is
7920ce38 204 a WAG (wild a** guess). */
252b5132 205 15,
0aabe54e 206 0, /* match priority. */
252b5132 207
7920ce38 208 /* Routines to byte-swap various sized integers from the data sections. */
252b5132 209 bfd_getl64, bfd_getl_signed_64, bfd_putl64,
7920ce38
NC
210 bfd_getl32, bfd_getl_signed_32, bfd_putl32,
211 bfd_getl16, bfd_getl_signed_16, bfd_putl16,
252b5132 212
7920ce38 213 /* Routines to byte-swap various sized integers from the file headers. */
252b5132 214 bfd_getl64, bfd_getl_signed_64, bfd_putl64,
7920ce38
NC
215 bfd_getl32, bfd_getl_signed_32, bfd_putl32,
216 bfd_getl16, bfd_getl_signed_16, bfd_putl16,
217
218 /* bfd_check_format: check the format of a file being read. */
219 { _bfd_dummy_target, /* Unknown format. */
220 nlmNAME(object_p), /* Assembler/linker output (object file). */
221 bfd_generic_archive_p, /* An archive. */
222 nlm_core_file_p /* A core file. */
252b5132
RH
223 },
224
7920ce38 225 /* bfd_set_format: set the format of a file being written. */
252b5132
RH
226 { bfd_false,
227 nlm_mkobject,
228 _bfd_generic_mkarchive,
229 bfd_false
230 },
231
7920ce38 232 /* bfd_write_contents: write cached information into a file being written. */
252b5132
RH
233 { bfd_false,
234 nlmNAME(write_object_contents),
235 _bfd_write_archive_contents,
236 bfd_false
237 },
238
7920ce38
NC
239 /* Initialize a jump table with the standard macro.
240 All names start with "nlm". */
252b5132
RH
241 BFD_JUMP_TABLE_GENERIC (_bfd_generic),
242 BFD_JUMP_TABLE_COPY (_bfd_generic),
243 BFD_JUMP_TABLE_CORE (_bfd_nocore),
244 BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
245 BFD_JUMP_TABLE_SYMBOLS (nlm),
246 BFD_JUMP_TABLE_RELOCS (nlm),
247 BFD_JUMP_TABLE_WRITE (nlm),
248 BFD_JUMP_TABLE_LINK (nlm),
249 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
250
c3c89269
NC
251 /* Alternative endian target. */
252#ifdef TARGET_BIG_SYM
253 & TARGET_BIG_SYM,
254#else
255 NULL,
256#endif
1518639e 257
7920ce38
NC
258 /* Backend_data. */
259 (void *) TARGET_BACKEND_DATA
252b5132
RH
260};
261#endif
This page took 0.62493 seconds and 4 git commands to generate.