Changeset 609 for branches/GNU/src/binutils/bfd/bfd-in.h
- Timestamp:
- Aug 16, 2003, 6:59:22 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/binutils/bfd/bfd-in.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* Main header file for the bfd library -- portable access to object files. 2 Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3 2000, 2001 4 Free Software Foundation, Inc. 2 3 Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 4 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 5 5 6 Contributed by Cygnus Support. 6 7 7 ** NOTE: bfd.h and bfd-in2.h are GENERATED files. Don't change them; 8 ** instead, change bfd-in.h or the other BFD source files processed to 9 ** generate these files. 10 11 This file is part of BFD, the Binary File Descriptor library. 12 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 15 the Free Software Foundation; either version 2 of the License, or 16 (at your option) any later version. 17 18 This program is distributed in the hope that it will be useful, 19 but WITHOUT ANY WARRANTY; without even the implied warranty of 20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 GNU General Public License for more details. 22 23 You should have received a copy of the GNU General Public License 24 along with this program; if not, write to the Free Software 25 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 26 27 /* bfd.h -- The only header file required by users of the bfd library 28 29 The bfd.h file is generated from bfd-in.h and various .c files; if you 30 change it, your changes will probably be lost. 31 32 All the prototypes and definitions following the comment "THE FOLLOWING 33 IS EXTRACTED FROM THE SOURCE" are extracted from the source files for 34 BFD. If you change it, someone oneday will extract it from the source 35 again, and your changes will be lost. To save yourself from this bind, 36 change the definitions in the source in the bfd directory. Type "make 37 docs" and then "make headers" in that directory, and magically this file 38 will change to reflect your changes. 39 40 If you don't have the tools to perform the extraction, then you are 41 safe from someone on your system trampling over your header files. 42 You should still maintain the equivalence between the source and this 43 file though; every change you make to the .c file should be reflected 44 here. */ 8 This file is part of BFD, the Binary File Descriptor library. 9 10 This program is free software; you can redistribute it and/or modify 11 it under the terms of the GNU General Public License as published by 12 the Free Software Foundation; either version 2 of the License, or 13 (at your option) any later version. 14 15 This program is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 GNU General Public License for more details. 19 20 You should have received a copy of the GNU General Public License 21 along with this program; if not, write to the Free Software 22 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 45 23 46 24 #ifndef __BFD_H_SEEN__ … … 52 30 53 31 #include "ansidecl.h" 54 55 /* These two lines get substitutions done by commands in Makefile.in. */ 56 #define BFD_VERSION "@VERSION@" 32 #include "symcat.h" 33 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) 34 #ifndef SABER 35 /* This hack is to avoid a problem with some strict ANSI C preprocessors. 36 The problem is, "32_" is not a valid preprocessing token, and we don't 37 want extra underscores (e.g., "nlm_32_"). The XCONCAT2 macro will 38 cause the inner CONCAT2 macros to be evaluated first, producing 39 still-valid pp-tokens. Then the final concatenation can be done. */ 40 #undef CONCAT4 41 #define CONCAT4(a,b,c,d) XCONCAT2(CONCAT2(a,b),CONCAT2(c,d)) 42 #endif 43 #endif 44 45 /* The word size used by BFD on the host. This may be 64 with a 32 46 bit target if the host is 64 bit, or if other 64 bit targets have 47 been selected with --enable-targets, or if --enable-64-bit-bfd. */ 57 48 #define BFD_ARCH_SIZE @wordsize@ 49 50 /* The word size of the default bfd target. */ 51 #define BFD_DEFAULT_TARGET_SIZE @bfd_default_target_size@ 52 58 53 #define BFD_HOST_64BIT_LONG @BFD_HOST_64BIT_LONG@ 59 54 #if @BFD_HOST_64_BIT_DEFINED@ … … 74 69 #endif 75 70 76 /* forward declaration */ 77 typedef struct _bfd bfd; 78 79 /* To squelch erroneous compiler warnings ("illegal pointer 80 combination") from the SVR3 compiler, we would like to typedef 81 boolean to int (it doesn't like functions which return boolean. 82 Making sure they are never implicitly declared to return int 83 doesn't seem to help). But this file is not configured based on 84 the host. */ 85 /* General rules: functions which are boolean return true on success 86 and false on failure (unless they're a predicate). -- bfd.doc */ 87 /* I'm sure this is going to break something and someone is going to 88 force me to change it. */ 89 /* typedef enum boolean {false, true} boolean; */ 90 /* Yup, SVR4 has a "typedef enum boolean" in <sys/types.h> -fnf */ 91 /* It gets worse if the host also defines a true/false enum... -sts */ 92 /* And even worse if your compiler has built-in boolean types... -law */ 93 #if defined (__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) 94 #define TRUE_FALSE_ALREADY_DEFINED 95 #endif 96 #ifdef MPW 97 /* Pre-emptive strike - get the file with the enum. */ 98 #include <Types.h> 99 #define TRUE_FALSE_ALREADY_DEFINED 100 #endif /* MPW */ 101 #ifndef TRUE_FALSE_ALREADY_DEFINED 102 typedef enum bfd_boolean {false, true} boolean; 103 #define BFD_TRUE_FALSE 104 #else 105 /* Use enum names that will appear nowhere else. */ 106 typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean; 107 #endif 108 109 /* A pointer to a position in a file. */ 110 /* FIXME: This should be using off_t from <sys/types.h>. 111 For now, try to avoid breaking stuff by not including <sys/types.h> here. 112 This will break on systems with 64-bit file offsets (e.g. 4.4BSD). 113 Probably the best long-term answer is to avoid using file_ptr AND off_t 114 in this header file, and to handle this in the BFD implementation 115 rather than in its interface. */ 116 /* typedef off_t file_ptr; */ 117 typedef long int file_ptr; 71 /* Forward declaration. */ 72 typedef struct bfd bfd; 73 74 /* Boolean type used in bfd. Too many systems define their own 75 versions of "boolean" for us to safely typedef a "boolean" of 76 our own. Using an enum for "bfd_boolean" has its own set of 77 problems, with strange looking casts required to avoid warnings 78 on some older compilers. Thus we just use an int. 79 80 General rule: Functions which are bfd_boolean return TRUE on 81 success and FALSE on failure (unless they're a predicate). */ 82 83 typedef int bfd_boolean; 84 #undef FALSE 85 #undef TRUE 86 #define FALSE 0 87 #define TRUE 1 88 89 #if 0 90 /* Poison. */ 91 #undef false 92 #undef true 93 #define false dont_use_false_in_bfd 94 #define true dont_use_true_in_bfd 95 #endif 118 96 119 97 /* Support for different sizes of target format ints and addresses. … … 184 162 #endif /* not BFD64 */ 185 163 164 /* A pointer to a position in a file. */ 165 /* FIXME: This should be using off_t from <sys/types.h>. 166 For now, try to avoid breaking stuff by not including <sys/types.h> here. 167 This will break on systems with 64-bit file offsets (e.g. 4.4BSD). 168 Probably the best long-term answer is to avoid using file_ptr AND off_t 169 in this header file, and to handle this in the BFD implementation 170 rather than in its interface. */ 171 /* typedef off_t file_ptr; */ 172 typedef bfd_signed_vma file_ptr; 173 typedef bfd_vma ufile_ptr; 174 175 extern void bfd_sprintf_vma 176 PARAMS ((bfd *, char *, bfd_vma)); 177 extern void bfd_fprintf_vma 178 PARAMS ((bfd *, PTR, bfd_vma)); 179 186 180 #define printf_vma(x) fprintf_vma(stdout,x) 181 #define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x) 187 182 188 183 typedef unsigned int flagword; /* 32 bits of flags */ … … 190 185 191 186 192 /** File formats */ 193 194 typedef enum bfd_format { 195 bfd_unknown = 0, /* file format is unknown */ 196 bfd_object, /* linker/assember/compiler output */ 197 bfd_archive, /* object archive file */ 198 bfd_core, /* core dump */ 199 bfd_type_end} /* marks the end; don't use it! */ 200 bfd_format; 187 /* File formats. */ 188 189 typedef enum bfd_format 190 { 191 bfd_unknown = 0, /* File format is unknown. */ 192 bfd_object, /* Linker/assember/compiler output. */ 193 bfd_archive, /* Object archive file. */ 194 bfd_core, /* Core dump. */ 195 bfd_type_end /* Marks the end; don't use it! */ 196 } 197 bfd_format; 201 198 202 199 /* Values that may appear in the flags field of a BFD. These also … … 257 254 #define BFD_IN_MEMORY 0x800 258 255 259 260 /* symbols and relocation */ 256 /* The sections in this BFD specify a memory page. */ 257 #define HAS_LOAD_PAGE 0x1000 258 259 260 /* Symbols and relocation. */ 261 261 262 262 /* A count of carsyms (canonical archive symbols). */ … … 282 282 283 283 /* A canonical archive symbol. */ 284 /* This is a type pun with struct ranlib on purpose! */ 285 typedef struct carsym { 284 /* This is a type pun with struct ranlib on purpose! */ 285 typedef struct carsym 286 { 286 287 char *name; 287 file_ptr file_offset; /* look here to find the file */ 288 } carsym; /* to make these you call a carsymogen */ 288 file_ptr file_offset; /* Look here to find the file. */ 289 } 290 carsym; /* To make these you call a carsymogen. */ 289 291 290 292 /* Used in generating armaps (archive tables of contents). 291 Perhaps just a forward definition would do? */ 292 struct orl { /* output ranlib */ 293 char **name; /* symbol name */ 294 file_ptr pos; /* bfd* or file position */ 295 int namidx; /* index into string table */ 293 Perhaps just a forward definition would do? */ 294 struct orl /* Output ranlib. */ 295 { 296 char **name; /* Symbol name. */ 297 union 298 { 299 file_ptr pos; 300 bfd *abfd; 301 } u; /* bfd* or file position. */ 302 int namidx; /* Index into string table. */ 296 303 }; 297 304 298 305 299 /* Linenumber stuff */ 300 typedef struct lineno_cache_entry { 301 unsigned int line_number; /* Linenumber from start of function*/ 302 union { 303 struct symbol_cache_entry *sym; /* Function name */ 304 unsigned long offset; /* Offset into section */ 306 /* Linenumber stuff. */ 307 typedef struct lineno_cache_entry 308 { 309 unsigned int line_number; /* Linenumber from start of function. */ 310 union 311 { 312 struct symbol_cache_entry *sym; /* Function name. */ 313 bfd_vma offset; /* Offset into section. */ 305 314 } u; 306 } alent; 307 308 309 /* object and core file sections */ 315 } 316 alent; 317 318 319 /* Object and core file sections. */ 310 320 311 321 #define align_power(addr, align) \ 312 ( ((addr) + ((1<<(align))-1)) & (-1 << (align)))322 (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align))) 313 323 314 324 typedef struct sec *sec_ptr; … … 316 326 #define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0) 317 327 #define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0) 328 #define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0) 318 329 #define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0) 319 330 #define bfd_section_name(bfd, ptr) ((ptr)->name) … … 327 338 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) 328 339 329 #define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (boolean)true), true)330 #define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)), true)331 #define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)), true)340 #define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) 341 #define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) 342 #define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) 332 343 333 344 typedef struct stat stat_type; … … 347 358 symvalue value; 348 359 char type; 349 CONSTchar *name; /* Symbol name. */360 const char *name; /* Symbol name. */ 350 361 unsigned char stab_type; /* Stab type. */ 351 362 char stab_other; /* Stab other. */ 352 363 short stab_desc; /* Stab desc. */ 353 CONSTchar *stab_name; /* String for stab type. */364 const char *stab_name; /* String for stab type. */ 354 365 } symbol_info; 355 366 356 367 /* Get the name of a stabs type code. */ 357 368 358 extern const char *bfd_get_stab_name PARAMS ((int)); 369 extern const char *bfd_get_stab_name 370 PARAMS ((int)); 359 371 360 372 … … 390 402 each function should be written to allocate a new block of memory 391 403 only if the argument is NULL. */ 392 struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, 393 struct bfd_hash_table *, 394 const char *)); 404 struct bfd_hash_entry *(*newfunc) 405 PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); 395 406 /* An objalloc for this hash table. This is a struct objalloc *, 396 407 but we use PTR to avoid requiring the inclusion of objalloc.h. */ … … 399 410 400 411 /* Initialize a hash table. */ 401 extern b oolean bfd_hash_table_init412 extern bfd_boolean bfd_hash_table_init 402 413 PARAMS ((struct bfd_hash_table *, 403 414 struct bfd_hash_entry *(*) (struct bfd_hash_entry *, … … 406 417 407 418 /* Initialize a hash table specifying a size. */ 408 extern b oolean bfd_hash_table_init_n419 extern bfd_boolean bfd_hash_table_init_n 409 420 PARAMS ((struct bfd_hash_table *, 410 421 struct bfd_hash_entry *(*) (struct bfd_hash_entry *, … … 414 425 415 426 /* Free up a hash table. */ 416 extern void bfd_hash_table_free PARAMS ((struct bfd_hash_table *)); 417 418 /* Look up a string in a hash table. If CREATE is true, a new entry 427 extern void bfd_hash_table_free 428 PARAMS ((struct bfd_hash_table *)); 429 430 /* Look up a string in a hash table. If CREATE is TRUE, a new entry 419 431 will be created for this string if one does not already exist. The 420 COPY argument must be trueif this routine should copy the string432 COPY argument must be TRUE if this routine should copy the string 421 433 into newly allocated memory when adding an entry. */ 422 434 extern struct bfd_hash_entry *bfd_hash_lookup 423 PARAMS ((struct bfd_hash_table *, const char *, b oolean create,424 b oolean copy));435 PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create, 436 bfd_boolean copy)); 425 437 426 438 /* Replace an entry in a hash table. */ … … 435 447 436 448 /* Grab some space for a hash table entry. */ 437 extern PTR bfd_hash_allocate PARAMS ((struct bfd_hash_table *,438 449 extern PTR bfd_hash_allocate 450 PARAMS ((struct bfd_hash_table *, unsigned int)); 439 451 440 452 /* Traverse a hash table in a random order, calling a function on each 441 element. If the function returns false, the traversal stops. The453 element. If the function returns FALSE, the traversal stops. The 442 454 INFO argument is passed to the function. */ 443 extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *, 444 boolean (*) (struct bfd_hash_entry *, 445 PTR), 446 PTR info)); 447 448 449 /* Semi-portable string concatenation in cpp. 450 The CAT4 hack is to avoid a problem with some strict ANSI C preprocessors. 451 The problem is, "32_" is not a valid preprocessing token, and we don't 452 want extra underscores (e.g., "nlm_32_"). The XCAT2 macro will cause the 453 inner CAT macros to be evaluated first, producing still-valid pp-tokens. 454 Then the final concatenation can be done. (Sigh.) */ 455 #ifndef CAT 456 #ifdef SABER 457 #define CAT(a,b) a##b 458 #define CAT3(a,b,c) a##b##c 459 #define CAT4(a,b,c,d) a##b##c##d 460 #else 461 #if defined(__STDC__) || defined(ALMOST_STDC) 462 #define CAT(a,b) a##b 463 #define CAT3(a,b,c) a##b##c 464 #define XCAT2(a,b) CAT(a,b) 465 #define CAT4(a,b,c,d) XCAT2(CAT(a,b),CAT(c,d)) 466 #else 467 #define CAT(a,b) a/**/b 468 #define CAT3(a,b,c) a/**/b/**/c 469 #define CAT4(a,b,c,d) a/**/b/**/c/**/d 470 #endif 471 #endif 472 #endif 455 extern void bfd_hash_traverse 456 PARAMS ((struct bfd_hash_table *, 457 bfd_boolean (*) (struct bfd_hash_entry *, PTR), 458 PTR info)); 473 459 474 460 #define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table 475 461 476 477 /* User program access to BFD facilities */ 462 /* User program access to BFD facilities. */ 478 463 479 464 /* Direct I/O routines, for programs which know more about the object 480 465 file than BFD does. Use higher level routines if possible. */ 481 466 482 extern bfd_size_type bfd_read 483 PARAMS ((PTR, bfd_size_type size, bfd_size_type nitems, bfd *abfd)); 484 extern bfd_size_type bfd_write 485 PARAMS ((const PTR, bfd_size_type size, bfd_size_type nitems, bfd *abfd)); 486 extern int bfd_seek PARAMS ((bfd *abfd, file_ptr fp, int direction)); 487 extern long bfd_tell PARAMS ((bfd *abfd)); 488 extern int bfd_flush PARAMS ((bfd *abfd)); 489 extern int bfd_stat PARAMS ((bfd *abfd, struct stat *)); 467 extern bfd_size_type bfd_bread 468 PARAMS ((PTR, bfd_size_type, bfd *)); 469 extern bfd_size_type bfd_bwrite 470 PARAMS ((const PTR, bfd_size_type, bfd *)); 471 extern int bfd_seek 472 PARAMS ((bfd *, file_ptr, int)); 473 extern ufile_ptr bfd_tell 474 PARAMS ((bfd *)); 475 extern int bfd_flush 476 PARAMS ((bfd *)); 477 extern int bfd_stat 478 PARAMS ((bfd *, struct stat *)); 479 480 /* Deprecated old routines. */ 481 #if __GNUC__ 482 #define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \ 483 (warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__), \ 484 bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD))) 485 #define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \ 486 (warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__), \ 487 bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD))) 488 #else 489 #define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \ 490 (warn_deprecated ("bfd_read", (const char *) 0, 0, (const char *) 0), \ 491 bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD))) 492 #define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \ 493 (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\ 494 bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD))) 495 #endif 496 extern void warn_deprecated 497 PARAMS ((const char *, const char *, int, const char *)); 490 498 491 499 /* Cast from const char * to char * so that caller can assign to … … 519 527 #define bfd_count_sections(abfd) ((abfd)->section_count) 520 528 529 #define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount) 530 521 531 #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) 522 532 523 #define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (boolean) (bool)), true) 524 525 extern boolean bfd_record_phdr 526 PARAMS ((bfd *, unsigned long, boolean, flagword, boolean, bfd_vma, 527 boolean, boolean, unsigned int, struct sec **)); 533 #define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) 534 535 extern bfd_boolean bfd_cache_close 536 PARAMS ((bfd *abfd)); 537 /* NB: This declaration should match the autogenerated one in libbfd.h. */ 538 539 extern bfd_boolean bfd_record_phdr 540 PARAMS ((bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, 541 bfd_boolean, bfd_boolean, unsigned int, struct sec **)); 528 542 529 543 /* Byte swapping routines. */ 530 544 531 bfd_vma bfd_getb64 PARAMS ((const unsigned char *)); 532 bfd_vma bfd_getl64 PARAMS ((const unsigned char *)); 533 bfd_signed_vma bfd_getb_signed_64 PARAMS ((const unsigned char *)); 534 bfd_signed_vma bfd_getl_signed_64 PARAMS ((const unsigned char *)); 535 bfd_vma bfd_getb32 PARAMS ((const unsigned char *)); 536 bfd_vma bfd_getl32 PARAMS ((const unsigned char *)); 537 bfd_signed_vma bfd_getb_signed_32 PARAMS ((const unsigned char *)); 538 bfd_signed_vma bfd_getl_signed_32 PARAMS ((const unsigned char *)); 539 bfd_vma bfd_getb16 PARAMS ((const unsigned char *)); 540 bfd_vma bfd_getl16 PARAMS ((const unsigned char *)); 541 bfd_signed_vma bfd_getb_signed_16 PARAMS ((const unsigned char *)); 542 bfd_signed_vma bfd_getl_signed_16 PARAMS ((const unsigned char *)); 543 void bfd_putb64 PARAMS ((bfd_vma, unsigned char *)); 544 void bfd_putl64 PARAMS ((bfd_vma, unsigned char *)); 545 void bfd_putb32 PARAMS ((bfd_vma, unsigned char *)); 546 void bfd_putl32 PARAMS ((bfd_vma, unsigned char *)); 547 void bfd_putb16 PARAMS ((bfd_vma, unsigned char *)); 548 void bfd_putl16 PARAMS ((bfd_vma, unsigned char *)); 545 bfd_vma bfd_getb64 546 PARAMS ((const unsigned char *)); 547 bfd_vma bfd_getl64 548 PARAMS ((const unsigned char *)); 549 bfd_signed_vma bfd_getb_signed_64 550 PARAMS ((const unsigned char *)); 551 bfd_signed_vma bfd_getl_signed_64 552 PARAMS ((const unsigned char *)); 553 bfd_vma bfd_getb32 554 PARAMS ((const unsigned char *)); 555 bfd_vma bfd_getl32 556 PARAMS ((const unsigned char *)); 557 bfd_signed_vma bfd_getb_signed_32 558 PARAMS ((const unsigned char *)); 559 bfd_signed_vma bfd_getl_signed_32 560 PARAMS ((const unsigned char *)); 561 bfd_vma bfd_getb16 562 PARAMS ((const unsigned char *)); 563 bfd_vma bfd_getl16 564 PARAMS ((const unsigned char *)); 565 bfd_signed_vma bfd_getb_signed_16 566 PARAMS ((const unsigned char *)); 567 bfd_signed_vma bfd_getl_signed_16 568 PARAMS ((const unsigned char *)); 569 void bfd_putb64 570 PARAMS ((bfd_vma, unsigned char *)); 571 void bfd_putl64 572 PARAMS ((bfd_vma, unsigned char *)); 573 void bfd_putb32 574 PARAMS ((bfd_vma, unsigned char *)); 575 void bfd_putl32 576 PARAMS ((bfd_vma, unsigned char *)); 577 void bfd_putb16 578 PARAMS ((bfd_vma, unsigned char *)); 579 void bfd_putl16 580 PARAMS ((bfd_vma, unsigned char *)); 549 581 550 582 /* Byte swapping routines which take size and endiannes as arguments. */ 551 583 552 bfd_vma bfd_get_bits PARAMS ((bfd_byte *, int, boolean)); 553 void bfd_put_bits PARAMS ((bfd_vma, bfd_byte *, int, boolean)); 584 bfd_vma bfd_get_bits 585 PARAMS ((bfd_byte *, int, bfd_boolean)); 586 void bfd_put_bits 587 PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean)); 554 588 555 589 … … 565 599 struct bfd_elf_version_tree; 566 600 #endif 567 extern bfd_vma bfd_ecoff_get_gp_value PARAMS ((bfd * abfd)); 568 extern boolean bfd_ecoff_set_gp_value PARAMS ((bfd *abfd, bfd_vma gp_value)); 569 extern boolean bfd_ecoff_set_regmasks 601 extern bfd_vma bfd_ecoff_get_gp_value 602 PARAMS ((bfd * abfd)); 603 extern bfd_boolean bfd_ecoff_set_gp_value 604 PARAMS ((bfd *abfd, bfd_vma gp_value)); 605 extern bfd_boolean bfd_ecoff_set_regmasks 570 606 PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask, 571 607 unsigned long *cprmask)); … … 578 614 const struct ecoff_debug_swap *output_swap, 579 615 struct bfd_link_info *)); 580 extern b oolean bfd_ecoff_debug_accumulate616 extern bfd_boolean bfd_ecoff_debug_accumulate 581 617 PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, 582 618 const struct ecoff_debug_swap *output_swap, … … 584 620 const struct ecoff_debug_swap *input_swap, 585 621 struct bfd_link_info *)); 586 extern b oolean bfd_ecoff_debug_accumulate_other622 extern bfd_boolean bfd_ecoff_debug_accumulate_other 587 623 PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, 588 624 const struct ecoff_debug_swap *output_swap, bfd *input_bfd, 589 625 struct bfd_link_info *)); 590 extern b oolean bfd_ecoff_debug_externals626 extern bfd_boolean bfd_ecoff_debug_externals 591 627 PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, 592 628 const struct ecoff_debug_swap *swap, 593 b oolean relocateable,594 b oolean (*get_extr) (struct symbol_cache_entry *,595 struct ecoff_extr *),629 bfd_boolean relocateable, 630 bfd_boolean (*get_extr) (struct symbol_cache_entry *, 631 struct ecoff_extr *), 596 632 void (*set_index) (struct symbol_cache_entry *, 597 633 bfd_size_type))); 598 extern b oolean bfd_ecoff_debug_one_external634 extern bfd_boolean bfd_ecoff_debug_one_external 599 635 PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, 600 636 const struct ecoff_debug_swap *swap, … … 603 639 PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, 604 640 const struct ecoff_debug_swap *swap)); 605 extern b oolean bfd_ecoff_write_debug641 extern bfd_boolean bfd_ecoff_write_debug 606 642 PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, 607 643 const struct ecoff_debug_swap *swap, file_ptr where)); 608 extern b oolean bfd_ecoff_write_accumulated_debug644 extern bfd_boolean bfd_ecoff_write_accumulated_debug 609 645 PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug, 610 646 const struct ecoff_debug_swap *swap, 611 647 struct bfd_link_info *info, file_ptr where)); 612 extern b oolean bfd_mips_ecoff_create_embedded_relocs648 extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs 613 649 PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, 614 650 char **)); … … 623 659 }; 624 660 625 extern b oolean bfd_elf32_record_link_assignment626 PARAMS ((bfd *, struct bfd_link_info *, const char *, b oolean));627 extern b oolean bfd_elf64_record_link_assignment628 PARAMS ((bfd *, struct bfd_link_info *, const char *, b oolean));661 extern bfd_boolean bfd_elf32_record_link_assignment 662 PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean)); 663 extern bfd_boolean bfd_elf64_record_link_assignment 664 PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean)); 629 665 extern struct bfd_link_needed_list *bfd_elf_get_needed_list 630 666 PARAMS ((bfd *, struct bfd_link_info *)); 631 extern b oolean bfd_elf_get_bfd_needed_list667 extern bfd_boolean bfd_elf_get_bfd_needed_list 632 668 PARAMS ((bfd *, struct bfd_link_needed_list **)); 633 extern b oolean bfd_elf32_size_dynamic_sections634 PARAMS ((bfd *, const char *, const char *, boolean,const char *,669 extern bfd_boolean bfd_elf32_size_dynamic_sections 670 PARAMS ((bfd *, const char *, const char *, const char *, 635 671 const char * const *, struct bfd_link_info *, struct sec **, 636 672 struct bfd_elf_version_tree *)); 637 extern b oolean bfd_elf64_size_dynamic_sections638 PARAMS ((bfd *, const char *, const char *, boolean,const char *,673 extern bfd_boolean bfd_elf64_size_dynamic_sections 674 PARAMS ((bfd *, const char *, const char *, const char *, 639 675 const char * const *, struct bfd_link_info *, struct sec **, 640 676 struct bfd_elf_version_tree *)); 641 extern void bfd_elf_set_dt_needed_name PARAMS ((bfd *, const char *)); 642 extern void bfd_elf_set_dt_needed_soname PARAMS ((bfd *, const char *)); 643 extern const char *bfd_elf_get_dt_soname PARAMS ((bfd *)); 677 extern void bfd_elf_set_dt_needed_name 678 PARAMS ((bfd *, const char *)); 679 extern void bfd_elf_set_dt_needed_soname 680 PARAMS ((bfd *, const char *)); 681 extern const char *bfd_elf_get_dt_soname 682 PARAMS ((bfd *)); 644 683 extern struct bfd_link_needed_list *bfd_elf_get_runpath_list 684 PARAMS ((bfd *, struct bfd_link_info *)); 685 extern bfd_boolean bfd_elf32_discard_info 686 PARAMS ((bfd *, struct bfd_link_info *)); 687 extern bfd_boolean bfd_elf64_discard_info 645 688 PARAMS ((bfd *, struct bfd_link_info *)); 646 689 … … 648 691 copy of ABFD's program header table entries. Return -1 if an error 649 692 occurs; bfd_get_error will return an appropriate code. */ 650 extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd)); 693 extern long bfd_get_elf_phdr_upper_bound 694 PARAMS ((bfd *abfd)); 651 695 652 696 /* Copy ABFD's program header table entries to *PHDRS. The entries … … 657 701 Return the number of program header table entries read, or -1 if an 658 702 error occurs; bfd_get_error will return an appropriate code. */ 659 extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs)); 703 extern int bfd_get_elf_phdrs 704 PARAMS ((bfd *abfd, void *phdrs)); 660 705 661 706 /* Return the arch_size field of an elf bfd, or -1 if not elf. */ 662 extern int bfd_get_arch_size PARAMS ((bfd *)); 663 664 /* Return true if address "naturally" sign extends, or -1 if not elf. */ 665 extern int bfd_get_sign_extend_vma PARAMS ((bfd *)); 666 667 extern boolean bfd_m68k_elf32_create_embedded_relocs 707 extern int bfd_get_arch_size 708 PARAMS ((bfd *)); 709 710 /* Return TRUE if address "naturally" sign extends, or -1 if not elf. */ 711 extern int bfd_get_sign_extend_vma 712 PARAMS ((bfd *)); 713 714 extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs 668 715 PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, 669 716 char **)); 717 extern bfd_boolean bfd_mips_elf32_create_embedded_relocs 718 PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, 719 char **)); 670 720 671 721 /* SunOS shared library support routines for the linker. */ … … 673 723 extern struct bfd_link_needed_list *bfd_sunos_get_needed_list 674 724 PARAMS ((bfd *, struct bfd_link_info *)); 675 extern b oolean bfd_sunos_record_link_assignment725 extern bfd_boolean bfd_sunos_record_link_assignment 676 726 PARAMS ((bfd *, struct bfd_link_info *, const char *)); 677 extern b oolean bfd_sunos_size_dynamic_sections727 extern bfd_boolean bfd_sunos_size_dynamic_sections 678 728 PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **, 679 729 struct sec **)); … … 681 731 /* Linux shared library support routines for the linker. */ 682 732 683 extern b oolean bfd_i386linux_size_dynamic_sections684 PARAMS ((bfd *, struct bfd_link_info *)); 685 extern b oolean bfd_m68klinux_size_dynamic_sections686 PARAMS ((bfd *, struct bfd_link_info *)); 687 extern b oolean bfd_sparclinux_size_dynamic_sections733 extern bfd_boolean bfd_i386linux_size_dynamic_sections 734 PARAMS ((bfd *, struct bfd_link_info *)); 735 extern bfd_boolean bfd_m68klinux_size_dynamic_sections 736 PARAMS ((bfd *, struct bfd_link_info *)); 737 extern bfd_boolean bfd_sparclinux_size_dynamic_sections 688 738 PARAMS ((bfd *, struct bfd_link_info *)); 689 739 … … 693 743 typedef struct _bfd_window_internal bfd_window_internal; 694 744 695 typedef struct _bfd_window { 745 typedef struct _bfd_window 746 { 696 747 /* What the user asked for. */ 697 748 PTR data; … … 704 755 application wants two writable copies! */ 705 756 struct _bfd_window_internal *i; 706 } bfd_window; 707 708 extern void bfd_init_window PARAMS ((bfd_window *)); 709 extern void bfd_free_window PARAMS ((bfd_window *)); 710 extern boolean bfd_get_file_window 711 PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, boolean)); 757 } 758 bfd_window; 759 760 extern void bfd_init_window 761 PARAMS ((bfd_window *)); 762 extern void bfd_free_window 763 PARAMS ((bfd_window *)); 764 extern bfd_boolean bfd_get_file_window 765 PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean)); 712 766 713 767 /* XCOFF support routines for the linker. */ 714 768 715 extern b oolean bfd_xcoff_link_record_set769 extern bfd_boolean bfd_xcoff_link_record_set 716 770 PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, 717 771 bfd_size_type)); 718 extern b oolean bfd_xcoff_import_symbol772 extern bfd_boolean bfd_xcoff_import_symbol 719 773 PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, 720 bfd_vma, const char *, const char *, const char *)); 721 extern boolean bfd_xcoff_export_symbol 722 PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, 723 boolean)); 724 extern boolean bfd_xcoff_link_count_reloc 774 bfd_vma, const char *, const char *, const char *, unsigned int)); 775 extern bfd_boolean bfd_xcoff_export_symbol 776 PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *)); 777 extern bfd_boolean bfd_xcoff_link_count_reloc 725 778 PARAMS ((bfd *, struct bfd_link_info *, const char *)); 726 extern b oolean bfd_xcoff_record_link_assignment779 extern bfd_boolean bfd_xcoff_record_link_assignment 727 780 PARAMS ((bfd *, struct bfd_link_info *, const char *)); 728 extern b oolean bfd_xcoff_size_dynamic_sections781 extern bfd_boolean bfd_xcoff_size_dynamic_sections 729 782 PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *, 730 unsigned long, unsigned long, unsigned long, boolean, 731 int, boolean, boolean, struct sec **)); 783 unsigned long, unsigned long, unsigned long, bfd_boolean, 784 int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean)); 785 extern bfd_boolean bfd_xcoff_link_generate_rtinit 786 PARAMS ((bfd *, const char *, const char *, bfd_boolean)); 787 788 /* XCOFF support routines for ar. */ 789 extern bfd_boolean bfd_xcoff_ar_archive_set_magic 790 PARAMS ((bfd *, char *)); 732 791 733 792 /* Externally visible COFF routines. */ … … 738 797 #endif 739 798 740 extern b oolean bfd_coff_get_syment799 extern bfd_boolean bfd_coff_get_syment 741 800 PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *)); 742 801 743 extern b oolean bfd_coff_get_auxent802 extern bfd_boolean bfd_coff_get_auxent 744 803 PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *)); 745 804 746 extern b oolean bfd_coff_set_symbol_class805 extern bfd_boolean bfd_coff_set_symbol_class 747 806 PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int)); 748 807 749 extern b oolean bfd_m68k_coff_create_embedded_relocs808 extern bfd_boolean bfd_m68k_coff_create_embedded_relocs 750 809 PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, 751 810 char **)); 752 811 753 812 /* ARM Interworking support. Called from linker. */ 754 extern b oolean bfd_arm_allocate_interworking_sections813 extern bfd_boolean bfd_arm_allocate_interworking_sections 755 814 PARAMS ((struct bfd_link_info *)); 756 815 757 extern b oolean bfd_arm_process_before_allocation816 extern bfd_boolean bfd_arm_process_before_allocation 758 817 PARAMS ((bfd *, struct bfd_link_info *, int)); 759 818 760 extern b oolean bfd_arm_get_bfd_for_interworking819 extern bfd_boolean bfd_arm_get_bfd_for_interworking 761 820 PARAMS ((bfd *, struct bfd_link_info *)); 762 821 763 822 /* PE ARM Interworking support. Called from linker. */ 764 extern b oolean bfd_arm_pe_allocate_interworking_sections823 extern bfd_boolean bfd_arm_pe_allocate_interworking_sections 765 824 PARAMS ((struct bfd_link_info *)); 766 825 767 extern b oolean bfd_arm_pe_process_before_allocation826 extern bfd_boolean bfd_arm_pe_process_before_allocation 768 827 PARAMS ((bfd *, struct bfd_link_info *, int)); 769 828 770 extern b oolean bfd_arm_pe_get_bfd_for_interworking829 extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking 771 830 PARAMS ((bfd *, struct bfd_link_info *)); 772 831 773 832 /* ELF ARM Interworking support. Called from linker. */ 774 extern b oolean bfd_elf32_arm_allocate_interworking_sections833 extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections 775 834 PARAMS ((struct bfd_link_info *)); 776 835 777 extern b oolean bfd_elf32_arm_process_before_allocation836 extern bfd_boolean bfd_elf32_arm_process_before_allocation 778 837 PARAMS ((bfd *, struct bfd_link_info *, int)); 779 838 780 extern boolean bfd_elf32_arm_get_bfd_for_interworking 781 PARAMS ((bfd *, struct bfd_link_info *)); 839 extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking 840 PARAMS ((bfd *, struct bfd_link_info *)); 841 842 extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd 843 PARAMS ((bfd *, struct bfd_link_info *)); 844 845 /* ARM Note section processing. */ 846 extern bfd_boolean bfd_arm_merge_machines 847 PARAMS ((bfd *, bfd *)); 848 849 extern bfd_boolean bfd_arm_update_notes 850 PARAMS ((bfd *, const char *)); 851 852 extern unsigned int bfd_arm_get_mach_from_notes 853 PARAMS ((bfd *, const char *)); 782 854 783 855 /* TI COFF load page support. */ … … 788 860 PARAMS ((struct sec *)); 789 861 790 /* And more from the source. */ -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.