Ignore:
Timestamp:
Aug 16, 2003, 6:59:22 PM (22 years ago)
Author:
bird
Message:

binutils v2.14 - offical sources.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/binutils/bfd/bfd-in.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* 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
    56   Contributed by Cygnus Support.
    67
    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.  */
    4523
    4624#ifndef __BFD_H_SEEN__
     
    5230
    5331#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.  */
    5748#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
    5853#define BFD_HOST_64BIT_LONG @BFD_HOST_64BIT_LONG@
    5954#if @BFD_HOST_64_BIT_DEFINED@
     
    7469#endif
    7570
    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.  */
     72typedef 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
     83typedef 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
    11896
    11997/* Support for different sizes of target format ints and addresses.
     
    184162#endif /* not BFD64  */
    185163
     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; */
     172typedef bfd_signed_vma file_ptr;
     173typedef bfd_vma ufile_ptr;
     174
     175extern void bfd_sprintf_vma
     176  PARAMS ((bfd *, char *, bfd_vma));
     177extern void bfd_fprintf_vma
     178  PARAMS ((bfd *, PTR, bfd_vma));
     179
    186180#define printf_vma(x) fprintf_vma(stdout,x)
     181#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
    187182
    188183typedef unsigned int flagword;  /* 32 bits of flags */
     
    190185
    191186
    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
     189typedef 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}
     197bfd_format;
    201198
    202199/* Values that may appear in the flags field of a BFD.  These also
     
    257254#define BFD_IN_MEMORY 0x800
    258255
    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.  */
    261261
    262262/* A count of carsyms (canonical archive symbols).  */
     
    282282
    283283/* 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!  */
     285typedef struct carsym
     286{
    286287  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}
     290carsym;                 /* To make these you call a carsymogen.  */
    289291
    290292/* 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?  */
     294struct 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.  */
    296303};
    297304
    298305
    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.  */
     307typedef 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.  */
    305314  } u;
    306 } alent;
    307 
    308 
    309 /* object and core file sections */
     315}
     316alent;
     317
     318
     319/* Object and core file sections.  */
    310320
    311321#define align_power(addr, align)        \
    312         ( ((addr) + ((1<<(align))-1)) & (-1 << (align)))
     322  (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
    313323
    314324typedef struct sec *sec_ptr;
     
    316326#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0)
    317327#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0)
     328#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
    318329#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
    319330#define bfd_section_name(bfd, ptr) ((ptr)->name)
     
    327338#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
    328339
    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)
    332343
    333344typedef struct stat stat_type;
     
    347358  symvalue value;
    348359  char type;
    349   CONST char *name;            /* Symbol name.  */
     360  const char *name;            /* Symbol name.  */
    350361  unsigned char stab_type;     /* Stab type.  */
    351362  char stab_other;             /* Stab other.  */
    352363  short stab_desc;             /* Stab desc.  */
    353   CONST char *stab_name;       /* String for stab type.  */
     364  const char *stab_name;       /* String for stab type.  */
    354365} symbol_info;
    355366
    356367/* Get the name of a stabs type code.  */
    357368
    358 extern const char *bfd_get_stab_name PARAMS ((int));
     369extern const char *bfd_get_stab_name
     370  PARAMS ((int));
    359371
    360372
     
    390402     each function should be written to allocate a new block of memory
    391403     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 *));
    395406   /* An objalloc for this hash table.  This is a struct objalloc *,
    396407     but we use PTR to avoid requiring the inclusion of objalloc.h.  */
     
    399410
    400411/* Initialize a hash table.  */
    401 extern boolean bfd_hash_table_init
     412extern bfd_boolean bfd_hash_table_init
    402413  PARAMS ((struct bfd_hash_table *,
    403414           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
     
    406417
    407418/* Initialize a hash table specifying a size.  */
    408 extern boolean bfd_hash_table_init_n
     419extern bfd_boolean bfd_hash_table_init_n
    409420  PARAMS ((struct bfd_hash_table *,
    410421           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
     
    414425
    415426/* 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
     427extern 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
    419431   will be created for this string if one does not already exist.  The
    420    COPY argument must be true if this routine should copy the string
     432   COPY argument must be TRUE if this routine should copy the string
    421433   into newly allocated memory when adding an entry.  */
    422434extern struct bfd_hash_entry *bfd_hash_lookup
    423   PARAMS ((struct bfd_hash_table *, const char *, boolean create,
    424            boolean copy));
     435  PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create,
     436           bfd_boolean copy));
    425437
    426438/* Replace an entry in a hash table.  */
     
    435447
    436448/* Grab some space for a hash table entry.  */
    437 extern PTR bfd_hash_allocate PARAMS ((struct bfd_hash_table *,
    438                                       unsigned int));
     449extern PTR bfd_hash_allocate
     450  PARAMS ((struct bfd_hash_table *, unsigned int));
    439451
    440452/* Traverse a hash table in a random order, calling a function on each
    441    element.  If the function returns false, the traversal stops.  The
     453   element.  If the function returns FALSE, the traversal stops.  The
    442454   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
     455extern void bfd_hash_traverse
     456  PARAMS ((struct bfd_hash_table *,
     457           bfd_boolean (*) (struct bfd_hash_entry *, PTR),
     458           PTR info));
    473459
    474460#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
    475461
    476 
    477 /* User program access to BFD facilities */
     462/* User program access to BFD facilities.  */
    478463
    479464/* Direct I/O routines, for programs which know more about the object
    480465   file than BFD does.  Use higher level routines if possible.  */
    481466
    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 *));
     467extern bfd_size_type bfd_bread
     468  PARAMS ((PTR, bfd_size_type, bfd *));
     469extern bfd_size_type bfd_bwrite
     470  PARAMS ((const PTR, bfd_size_type, bfd *));
     471extern int bfd_seek
     472  PARAMS ((bfd *, file_ptr, int));
     473extern ufile_ptr bfd_tell
     474  PARAMS ((bfd *));
     475extern int bfd_flush
     476  PARAMS ((bfd *));
     477extern 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
     496extern void warn_deprecated
     497  PARAMS ((const char *, const char *, int, const char *));
    490498
    491499/* Cast from const char * to char * so that caller can assign to
     
    519527#define bfd_count_sections(abfd) ((abfd)->section_count)
    520528
     529#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
     530
    521531#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
    522532
    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
     535extern bfd_boolean bfd_cache_close
     536  PARAMS ((bfd *abfd));
     537/* NB: This declaration should match the autogenerated one in libbfd.h.  */
     538
     539extern 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 **));
    528542
    529543/* Byte swapping routines.  */
    530544
    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 *));
     545bfd_vma bfd_getb64
     546  PARAMS ((const unsigned char *));
     547bfd_vma bfd_getl64
     548  PARAMS ((const unsigned char *));
     549bfd_signed_vma bfd_getb_signed_64
     550  PARAMS ((const unsigned char *));
     551bfd_signed_vma bfd_getl_signed_64
     552  PARAMS ((const unsigned char *));
     553bfd_vma bfd_getb32
     554  PARAMS ((const unsigned char *));
     555bfd_vma bfd_getl32
     556  PARAMS ((const unsigned char *));
     557bfd_signed_vma bfd_getb_signed_32
     558  PARAMS ((const unsigned char *));
     559bfd_signed_vma bfd_getl_signed_32
     560  PARAMS ((const unsigned char *));
     561bfd_vma bfd_getb16
     562  PARAMS ((const unsigned char *));
     563bfd_vma bfd_getl16
     564  PARAMS ((const unsigned char *));
     565bfd_signed_vma bfd_getb_signed_16
     566  PARAMS ((const unsigned char *));
     567bfd_signed_vma bfd_getl_signed_16
     568  PARAMS ((const unsigned char *));
     569void bfd_putb64
     570  PARAMS ((bfd_vma, unsigned char *));
     571void bfd_putl64
     572  PARAMS ((bfd_vma, unsigned char *));
     573void bfd_putb32
     574  PARAMS ((bfd_vma, unsigned char *));
     575void bfd_putl32
     576  PARAMS ((bfd_vma, unsigned char *));
     577void bfd_putb16
     578  PARAMS ((bfd_vma, unsigned char *));
     579void bfd_putl16
     580  PARAMS ((bfd_vma, unsigned char *));
    549581
    550582/* Byte swapping routines which take size and endiannes as arguments.  */
    551583
    552 bfd_vma         bfd_get_bits       PARAMS ((bfd_byte *, int, boolean));
    553 void            bfd_put_bits       PARAMS ((bfd_vma, bfd_byte *, int, boolean));
     584bfd_vma bfd_get_bits
     585  PARAMS ((bfd_byte *, int, bfd_boolean));
     586void bfd_put_bits
     587  PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean));
    554588
    555589
     
    565599struct bfd_elf_version_tree;
    566600#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
     601extern bfd_vma bfd_ecoff_get_gp_value
     602  PARAMS ((bfd * abfd));
     603extern bfd_boolean bfd_ecoff_set_gp_value
     604  PARAMS ((bfd *abfd, bfd_vma gp_value));
     605extern bfd_boolean bfd_ecoff_set_regmasks
    570606  PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask,
    571607           unsigned long *cprmask));
     
    578614           const struct ecoff_debug_swap *output_swap,
    579615           struct bfd_link_info *));
    580 extern boolean bfd_ecoff_debug_accumulate
     616extern bfd_boolean bfd_ecoff_debug_accumulate
    581617  PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
    582618           const struct ecoff_debug_swap *output_swap,
     
    584620           const struct ecoff_debug_swap *input_swap,
    585621           struct bfd_link_info *));
    586 extern boolean bfd_ecoff_debug_accumulate_other
     622extern bfd_boolean bfd_ecoff_debug_accumulate_other
    587623  PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
    588624           const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
    589625           struct bfd_link_info *));
    590 extern boolean bfd_ecoff_debug_externals
     626extern bfd_boolean bfd_ecoff_debug_externals
    591627  PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
    592628           const struct ecoff_debug_swap *swap,
    593            boolean relocateable,
    594            boolean (*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 *),
    596632           void (*set_index) (struct symbol_cache_entry *,
    597633                              bfd_size_type)));
    598 extern boolean bfd_ecoff_debug_one_external
     634extern bfd_boolean bfd_ecoff_debug_one_external
    599635  PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
    600636           const struct ecoff_debug_swap *swap,
     
    603639  PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
    604640           const struct ecoff_debug_swap *swap));
    605 extern boolean bfd_ecoff_write_debug
     641extern bfd_boolean bfd_ecoff_write_debug
    606642  PARAMS ((bfd *abfd, struct ecoff_debug_info *debug,
    607643           const struct ecoff_debug_swap *swap, file_ptr where));
    608 extern boolean bfd_ecoff_write_accumulated_debug
     644extern bfd_boolean bfd_ecoff_write_accumulated_debug
    609645  PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug,
    610646           const struct ecoff_debug_swap *swap,
    611647           struct bfd_link_info *info, file_ptr where));
    612 extern boolean bfd_mips_ecoff_create_embedded_relocs
     648extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs
    613649  PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
    614650           char **));
     
    623659};
    624660
    625 extern boolean bfd_elf32_record_link_assignment
    626   PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean));
    627 extern boolean bfd_elf64_record_link_assignment
    628   PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean));
     661extern bfd_boolean bfd_elf32_record_link_assignment
     662  PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean));
     663extern bfd_boolean bfd_elf64_record_link_assignment
     664  PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean));
    629665extern struct bfd_link_needed_list *bfd_elf_get_needed_list
    630666  PARAMS ((bfd *, struct bfd_link_info *));
    631 extern boolean bfd_elf_get_bfd_needed_list
     667extern bfd_boolean bfd_elf_get_bfd_needed_list
    632668  PARAMS ((bfd *, struct bfd_link_needed_list **));
    633 extern boolean bfd_elf32_size_dynamic_sections
    634   PARAMS ((bfd *, const char *, const char *, boolean, const char *,
     669extern bfd_boolean bfd_elf32_size_dynamic_sections
     670  PARAMS ((bfd *, const char *, const char *, const char *,
    635671           const char * const *, struct bfd_link_info *, struct sec **,
    636672           struct bfd_elf_version_tree *));
    637 extern boolean bfd_elf64_size_dynamic_sections
    638   PARAMS ((bfd *, const char *, const char *, boolean, const char *,
     673extern bfd_boolean bfd_elf64_size_dynamic_sections
     674  PARAMS ((bfd *, const char *, const char *, const char *,
    639675           const char * const *, struct bfd_link_info *, struct sec **,
    640676           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 *));
     677extern void bfd_elf_set_dt_needed_name
     678  PARAMS ((bfd *, const char *));
     679extern void bfd_elf_set_dt_needed_soname
     680  PARAMS ((bfd *, const char *));
     681extern const char *bfd_elf_get_dt_soname
     682  PARAMS ((bfd *));
    644683extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
     684  PARAMS ((bfd *, struct bfd_link_info *));
     685extern bfd_boolean bfd_elf32_discard_info
     686  PARAMS ((bfd *, struct bfd_link_info *));
     687extern bfd_boolean bfd_elf64_discard_info
    645688  PARAMS ((bfd *, struct bfd_link_info *));
    646689
     
    648691   copy of ABFD's program header table entries.  Return -1 if an error
    649692   occurs; bfd_get_error will return an appropriate code.  */
    650 extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd));
     693extern long bfd_get_elf_phdr_upper_bound
     694  PARAMS ((bfd *abfd));
    651695
    652696/* Copy ABFD's program header table entries to *PHDRS.  The entries
     
    657701   Return the number of program header table entries read, or -1 if an
    658702   error occurs; bfd_get_error will return an appropriate code.  */
    659 extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs));
     703extern int bfd_get_elf_phdrs
     704  PARAMS ((bfd *abfd, void *phdrs));
    660705
    661706/* 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
     707extern int bfd_get_arch_size
     708  PARAMS ((bfd *));
     709
     710/* Return TRUE if address "naturally" sign extends, or -1 if not elf.  */
     711extern int bfd_get_sign_extend_vma
     712  PARAMS ((bfd *));
     713
     714extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
    668715  PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
    669716           char **));
     717extern bfd_boolean bfd_mips_elf32_create_embedded_relocs
     718  PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
     719           char **));
    670720
    671721/* SunOS shared library support routines for the linker.  */
     
    673723extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
    674724  PARAMS ((bfd *, struct bfd_link_info *));
    675 extern boolean bfd_sunos_record_link_assignment
     725extern bfd_boolean bfd_sunos_record_link_assignment
    676726  PARAMS ((bfd *, struct bfd_link_info *, const char *));
    677 extern boolean bfd_sunos_size_dynamic_sections
     727extern bfd_boolean bfd_sunos_size_dynamic_sections
    678728  PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **,
    679729           struct sec **));
     
    681731/* Linux shared library support routines for the linker.  */
    682732
    683 extern boolean bfd_i386linux_size_dynamic_sections
    684   PARAMS ((bfd *, struct bfd_link_info *));
    685 extern boolean bfd_m68klinux_size_dynamic_sections
    686   PARAMS ((bfd *, struct bfd_link_info *));
    687 extern boolean bfd_sparclinux_size_dynamic_sections
     733extern bfd_boolean bfd_i386linux_size_dynamic_sections
     734  PARAMS ((bfd *, struct bfd_link_info *));
     735extern bfd_boolean bfd_m68klinux_size_dynamic_sections
     736  PARAMS ((bfd *, struct bfd_link_info *));
     737extern bfd_boolean bfd_sparclinux_size_dynamic_sections
    688738  PARAMS ((bfd *, struct bfd_link_info *));
    689739
     
    693743typedef struct _bfd_window_internal bfd_window_internal;
    694744
    695 typedef struct _bfd_window {
     745typedef struct _bfd_window
     746{
    696747  /* What the user asked for.  */
    697748  PTR data;
     
    704755     application wants two writable copies!  */
    705756  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}
     758bfd_window;
     759
     760extern void bfd_init_window
     761  PARAMS ((bfd_window *));
     762extern void bfd_free_window
     763  PARAMS ((bfd_window *));
     764extern bfd_boolean bfd_get_file_window
     765  PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean));
    712766
    713767/* XCOFF support routines for the linker.  */
    714768
    715 extern boolean bfd_xcoff_link_record_set
     769extern bfd_boolean bfd_xcoff_link_record_set
    716770  PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *,
    717771           bfd_size_type));
    718 extern boolean bfd_xcoff_import_symbol
     772extern bfd_boolean bfd_xcoff_import_symbol
    719773  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));
     775extern bfd_boolean bfd_xcoff_export_symbol
     776  PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *));
     777extern bfd_boolean bfd_xcoff_link_count_reloc
    725778  PARAMS ((bfd *, struct bfd_link_info *, const char *));
    726 extern boolean bfd_xcoff_record_link_assignment
     779extern bfd_boolean bfd_xcoff_record_link_assignment
    727780  PARAMS ((bfd *, struct bfd_link_info *, const char *));
    728 extern boolean bfd_xcoff_size_dynamic_sections
     781extern bfd_boolean bfd_xcoff_size_dynamic_sections
    729782  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));
     785extern bfd_boolean bfd_xcoff_link_generate_rtinit
     786  PARAMS ((bfd *, const char *, const char *, bfd_boolean));
     787
     788/* XCOFF support routines for ar.  */
     789extern bfd_boolean bfd_xcoff_ar_archive_set_magic
     790  PARAMS ((bfd *, char *));
    732791
    733792/* Externally visible COFF routines.  */
     
    738797#endif
    739798
    740 extern boolean bfd_coff_get_syment
     799extern bfd_boolean bfd_coff_get_syment
    741800  PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *));
    742801
    743 extern boolean bfd_coff_get_auxent
     802extern bfd_boolean bfd_coff_get_auxent
    744803  PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *));
    745804
    746 extern boolean bfd_coff_set_symbol_class
     805extern bfd_boolean bfd_coff_set_symbol_class
    747806  PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int));
    748807
    749 extern boolean bfd_m68k_coff_create_embedded_relocs
     808extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
    750809  PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *,
    751810           char **));
    752811
    753812/* ARM Interworking support.  Called from linker.  */
    754 extern boolean bfd_arm_allocate_interworking_sections
     813extern bfd_boolean bfd_arm_allocate_interworking_sections
    755814  PARAMS ((struct bfd_link_info *));
    756815
    757 extern boolean bfd_arm_process_before_allocation
     816extern bfd_boolean bfd_arm_process_before_allocation
    758817  PARAMS ((bfd *, struct bfd_link_info *, int));
    759818
    760 extern boolean bfd_arm_get_bfd_for_interworking
     819extern bfd_boolean bfd_arm_get_bfd_for_interworking
    761820  PARAMS ((bfd *, struct bfd_link_info *));
    762821
    763822/* PE ARM Interworking support.  Called from linker.  */
    764 extern boolean bfd_arm_pe_allocate_interworking_sections
     823extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
    765824  PARAMS ((struct bfd_link_info *));
    766825
    767 extern boolean bfd_arm_pe_process_before_allocation
     826extern bfd_boolean bfd_arm_pe_process_before_allocation
    768827  PARAMS ((bfd *, struct bfd_link_info *, int));
    769828
    770 extern boolean bfd_arm_pe_get_bfd_for_interworking
     829extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
    771830  PARAMS ((bfd *, struct bfd_link_info *));
    772831
    773832/* ELF ARM Interworking support.  Called from linker.  */
    774 extern boolean bfd_elf32_arm_allocate_interworking_sections
     833extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
    775834  PARAMS ((struct bfd_link_info *));
    776835
    777 extern boolean bfd_elf32_arm_process_before_allocation
     836extern bfd_boolean bfd_elf32_arm_process_before_allocation
    778837  PARAMS ((bfd *, struct bfd_link_info *, int));
    779838
    780 extern boolean bfd_elf32_arm_get_bfd_for_interworking
    781   PARAMS ((bfd *, struct bfd_link_info *));
     839extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
     840  PARAMS ((bfd *, struct bfd_link_info *));
     841
     842extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
     843  PARAMS ((bfd *, struct bfd_link_info *));
     844
     845/* ARM Note section processing.  */
     846extern bfd_boolean bfd_arm_merge_machines
     847  PARAMS ((bfd *, bfd *));
     848
     849extern bfd_boolean bfd_arm_update_notes
     850  PARAMS ((bfd *, const char *));
     851
     852extern unsigned int bfd_arm_get_mach_from_notes
     853  PARAMS ((bfd *, const char *));
    782854
    783855/* TI COFF load page support.  */
     
    788860  PARAMS ((struct sec *));
    789861
    790 /* And more from the source.  */
Note: See TracChangeset for help on using the changeset viewer.