OLD | NEW |
1 /* libbfd.h -- Declarations used by bfd library *implementation*. | 1 /* libbfd.h -- Declarations used by bfd library *implementation*. |
2 (This include file is not for users of the library.) | 2 (This include file is not for users of the library.) |
3 | 3 |
4 Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, | 4 Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, |
5 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, | 5 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, |
6 2010, 2011 | 6 2010, 2011, 2012 |
7 Free Software Foundation, Inc. | 7 Free Software Foundation, Inc. |
8 | 8 |
9 Written by Cygnus Support. | 9 Written by Cygnus Support. |
10 | 10 |
11 This file is part of BFD, the Binary File Descriptor library. | 11 This file is part of BFD, the Binary File Descriptor library. |
12 | 12 |
13 This program is free software; you can redistribute it and/or modify | 13 This program is free software; you can redistribute it and/or modify |
14 it under the terms of the GNU General Public License as published by | 14 it under the terms of the GNU General Public License as published by |
15 the Free Software Foundation; either version 3 of the License, or | 15 the Free Software Foundation; either version 3 of the License, or |
16 (at your option) any later version. | 16 (at your option) any later version. |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 | 57 |
58 struct section_hash_entry | 58 struct section_hash_entry |
59 { | 59 { |
60 struct bfd_hash_entry root; | 60 struct bfd_hash_entry root; |
61 asection section; | 61 asection section; |
62 }; | 62 }; |
63 | 63 |
64 /* tdata for an archive. For an input archive, cache | 64 /* tdata for an archive. For an input archive, cache |
65 needs to be free()'d. For an output archive, symdefs do. */ | 65 needs to be free()'d. For an output archive, symdefs do. */ |
66 | 66 |
67 struct artdata { | 67 struct artdata |
| 68 { |
68 file_ptr first_file_filepos; | 69 file_ptr first_file_filepos; |
69 /* Speed up searching the armap */ | 70 /* Speed up searching the armap */ |
70 htab_t cache; | 71 htab_t cache; |
71 bfd *archive_head;» » /* Only interesting in output routines */ | 72 bfd *archive_head;» » /* Only interesting in output routines. */ |
72 carsym *symdefs;» » /* the symdef entries */ | 73 carsym *symdefs;» » /* The symdef entries. */ |
73 symindex symdef_count;» /* how many there are */ | 74 symindex symdef_count;» /* How many there are. */ |
74 char *extended_names;»» /* clever intel extension */ | 75 char *extended_names;»» /* Clever intel extension. */ |
75 bfd_size_type extended_names_size; /* Size of extended names */ | 76 bfd_size_type extended_names_size; /* Size of extended names. */ |
76 /* when more compilers are standard C, this can be a time_t */ | 77 /* When more compilers are standard C, this can be a time_t. */ |
77 long armap_timestamp; /* Timestamp value written into armap. | 78 long armap_timestamp; /* Timestamp value written into armap. |
78 This is used for BSD archives to check | 79 This is used for BSD archives to check |
79 that the timestamp is recent enough | 80 that the timestamp is recent enough |
80 for the BSD linker to not complain, | 81 for the BSD linker to not complain, |
81 just before we finish writing an | 82 just before we finish writing an |
82 archive. */ | 83 archive. */ |
83 file_ptr armap_datepos; /* Position within archive to seek to | 84 file_ptr armap_datepos; /* Position within archive to seek to |
84 rewrite the date field. */ | 85 rewrite the date field. */ |
85 void *tdata; /* Backend specific information. */ | 86 void *tdata; /* Backend specific information. */ |
86 }; | 87 }; |
87 | 88 |
88 #define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data) | 89 #define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data) |
89 | 90 |
90 /* Goes in bfd's arelt_data slot */ | 91 /* Goes in bfd's arelt_data slot */ |
91 struct areltdata { | 92 struct areltdata |
92 char * arch_header;» » /* it's actually a string */ | 93 { |
93 unsigned int parsed_size;» /* octets of filesize not including ar_hdr */ | 94 char * arch_header;» » /* It's actually a string. */ |
94 unsigned int extra_size;» /* BSD4.4: extra bytes after the header. */ | 95 bfd_size_type parsed_size;» /* Octets of filesize not including ar_hdr. */ |
95 char *filename;» » /* null-terminated */ | 96 bfd_size_type extra_size;» /* BSD4.4: extra bytes after the header. */ |
96 file_ptr origin;» » /* for element of a thin archive */ | 97 char *filename;» » /* Null-terminated. */ |
| 98 file_ptr origin;» » /* For element of a thin archive. */ |
97 }; | 99 }; |
98 | 100 |
99 #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) | 101 #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) |
100 | 102 |
101 extern void *bfd_malloc | 103 extern void *bfd_malloc |
102 (bfd_size_type); | 104 (bfd_size_type); |
103 extern void *bfd_realloc | 105 extern void *bfd_realloc |
104 (void *, bfd_size_type); | 106 (void *, bfd_size_type); |
105 extern void *bfd_realloc_or_free | 107 extern void *bfd_realloc_or_free |
106 (void *, bfd_size_type); | 108 (void *, bfd_size_type); |
107 extern void *bfd_zmalloc | 109 extern void *bfd_zmalloc |
108 (bfd_size_type); | 110 (bfd_size_type); |
109 extern void *bfd_malloc2 | 111 extern void *bfd_malloc2 |
110 (bfd_size_type, bfd_size_type); | 112 (bfd_size_type, bfd_size_type); |
111 extern void *bfd_realloc2 | 113 extern void *bfd_realloc2 |
112 (void *, bfd_size_type, bfd_size_type); | 114 (void *, bfd_size_type, bfd_size_type); |
113 extern void *bfd_zmalloc2 | 115 extern void *bfd_zmalloc2 |
114 (bfd_size_type, bfd_size_type); | 116 (bfd_size_type, bfd_size_type); |
115 | 117 |
116 extern void _bfd_default_error_handler (const char *s, ...); | 118 extern void _bfd_default_error_handler (const char *s, ...); |
117 extern bfd_error_handler_type _bfd_error_handler; | 119 extern bfd_error_handler_type _bfd_error_handler; |
| 120 extern bfd_assert_handler_type _bfd_assert_handler; |
118 | 121 |
119 /* These routines allocate and free things on the BFD's objalloc. */ | 122 /* These routines allocate and free things on the BFD's objalloc. */ |
120 | 123 |
121 extern void *bfd_alloc2 | 124 extern void *bfd_alloc2 |
122 (bfd *, bfd_size_type, bfd_size_type); | 125 (bfd *, bfd_size_type, bfd_size_type); |
123 extern void *bfd_zalloc2 | 126 extern void *bfd_zalloc2 |
124 (bfd *, bfd_size_type, bfd_size_type); | 127 (bfd *, bfd_size_type, bfd_size_type); |
125 extern void bfd_release | 128 extern void bfd_release |
126 (bfd *, void *); | 129 (bfd *, void *); |
127 | 130 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 int stridx); | 199 int stridx); |
197 | 200 |
198 bfd_boolean coff_write_armap | 201 bfd_boolean coff_write_armap |
199 (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, | 202 (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, |
200 int stridx); | 203 int stridx); |
201 | 204 |
202 extern void *_bfd_generic_read_ar_hdr | 205 extern void *_bfd_generic_read_ar_hdr |
203 (bfd *); | 206 (bfd *); |
204 extern void _bfd_ar_spacepad | 207 extern void _bfd_ar_spacepad |
205 (char *, size_t, const char *, long); | 208 (char *, size_t, const char *, long); |
| 209 extern bfd_boolean _bfd_ar_sizepad |
| 210 (char *, size_t, bfd_size_type); |
206 | 211 |
207 extern void *_bfd_generic_read_ar_hdr_mag | 212 extern void *_bfd_generic_read_ar_hdr_mag |
208 (bfd *, const char *); | 213 (bfd *, const char *); |
209 | 214 |
210 extern bfd_boolean _bfd_generic_write_ar_hdr | 215 extern bfd_boolean _bfd_generic_write_ar_hdr |
211 (bfd *, bfd *); | 216 (bfd *, bfd *); |
212 | 217 |
213 extern bfd_boolean _bfd_bsd44_write_ar_hdr | 218 extern bfd_boolean _bfd_bsd44_write_ar_hdr |
214 (bfd *, bfd *); | 219 (bfd *, bfd *); |
215 | 220 |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 #define _bfd_nolink_sizeof_headers \ | 449 #define _bfd_nolink_sizeof_headers \ |
445 ((int (*) (bfd *, struct bfd_link_info *)) bfd_0) | 450 ((int (*) (bfd *, struct bfd_link_info *)) bfd_0) |
446 #define _bfd_nolink_bfd_get_relocated_section_contents \ | 451 #define _bfd_nolink_bfd_get_relocated_section_contents \ |
447 ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \ | 452 ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \ |
448 bfd_byte *, bfd_boolean, asymbol **)) \ | 453 bfd_byte *, bfd_boolean, asymbol **)) \ |
449 bfd_nullvoidptr) | 454 bfd_nullvoidptr) |
450 #define _bfd_nolink_bfd_relax_section \ | 455 #define _bfd_nolink_bfd_relax_section \ |
451 ((bfd_boolean (*) \ | 456 ((bfd_boolean (*) \ |
452 (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \ | 457 (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \ |
453 bfd_false) | 458 bfd_false) |
error: old chunk mismatch |
None
OLD | NEW |