OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [bfd/] [doc/] [bfdt.texi] - Diff between revs 157 and 225

Show entire file | Details | Blame | View Log

Rev 157 Rev 225
Line 8... Line 8...
to the rest of the data.
to the rest of the data.
 
 
 
 
@example
@example
 
 
 
enum bfd_direction
 
  @{
 
    no_direction = 0,
 
    read_direction = 1,
 
    write_direction = 2,
 
    both_direction = 3
 
  @};
 
 
struct bfd
struct bfd
@{
@{
  /* A unique identifier of the BFD  */
  /* A unique identifier of the BFD  */
  unsigned int id;
  unsigned int id;
 
 
Line 24... Line 32...
  /* The IOSTREAM, and corresponding IO vector that provide access
  /* The IOSTREAM, and corresponding IO vector that provide access
     to the file backing the BFD.  */
     to the file backing the BFD.  */
  void *iostream;
  void *iostream;
  const struct bfd_iovec *iovec;
  const struct bfd_iovec *iovec;
 
 
  /* Is the file descriptor being cached?  That is, can it be closed as
 
     needed, and re-opened when accessed later?  */
 
  bfd_boolean cacheable;
 
 
 
  /* Marks whether there was a default target specified when the
 
     BFD was opened. This is used to select which matching algorithm
 
     to use to choose the back end.  */
 
  bfd_boolean target_defaulted;
 
 
 
  /* The caching routines use these to maintain a
  /* The caching routines use these to maintain a
     least-recently-used list of BFDs.  */
     least-recently-used list of BFDs.  */
  struct bfd *lru_prev, *lru_next;
  struct bfd *lru_prev, *lru_next;
 
 
  /* When a file is closed by the caching routines, BFD retains
  /* When a file is closed by the caching routines, BFD retains
     state information on the file here...  */
     state information on the file here...  */
  ufile_ptr where;
  ufile_ptr where;
 
 
  /* ... and here: (``once'' means at least once).  */
 
  bfd_boolean opened_once;
 
 
 
  /* Set if we have a locally maintained mtime value, rather than
 
     getting it from the file each time.  */
 
  bfd_boolean mtime_set;
 
 
 
  /* File modified time, if mtime_set is TRUE.  */
  /* File modified time, if mtime_set is TRUE.  */
  long mtime;
  long mtime;
 
 
  /* Reserved for an unimplemented file locking extension.  */
  /* Reserved for an unimplemented file locking extension.  */
  int ifd;
  int ifd;
 
 
  /* The format which belongs to the BFD. (object, core, etc.)  */
  /* The format which belongs to the BFD. (object, core, etc.)  */
  bfd_format format;
  bfd_format format;
 
 
  /* The direction with which the BFD was opened.  */
  /* The direction with which the BFD was opened.  */
  enum bfd_direction
  enum bfd_direction direction;
    @{
 
      no_direction = 0,
 
      read_direction = 1,
 
      write_direction = 2,
 
      both_direction = 3
 
    @}
 
  direction;
 
 
 
  /* Format_specific flags.  */
  /* Format_specific flags.  */
  flagword flags;
  flagword flags;
 
 
 
  /* Values that may appear in the flags field of a BFD.  These also
 
     appear in the object_flags field of the bfd_target structure, where
 
     they indicate the set of flags used by that backend (not all flags
 
     are meaningful for all object file formats) (FIXME: at the moment,
 
     the object_flags values have mostly just been copied from backend
 
     to another, and are not necessarily correct).  */
 
 
 
#define BFD_NO_FLAGS   0x00
 
 
 
  /* BFD contains relocation entries.  */
 
#define HAS_RELOC      0x01
 
 
 
  /* BFD is directly executable.  */
 
#define EXEC_P         0x02
 
 
 
  /* BFD has line number information (basically used for F_LNNO in a
 
     COFF header).  */
 
#define HAS_LINENO     0x04
 
 
 
  /* BFD has debugging information.  */
 
#define HAS_DEBUG      0x08
 
 
 
  /* BFD has symbols.  */
 
#define HAS_SYMS       0x10
 
 
 
  /* BFD has local symbols (basically used for F_LSYMS in a COFF
 
     header).  */
 
#define HAS_LOCALS     0x20
 
 
 
  /* BFD is a dynamic object.  */
 
#define DYNAMIC        0x40
 
 
 
  /* Text section is write protected (if D_PAGED is not set, this is
 
     like an a.out NMAGIC file) (the linker sets this by default, but
 
     clears it for -r or -N).  */
 
#define WP_TEXT        0x80
 
 
 
  /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
 
     linker sets this by default, but clears it for -r or -n or -N).  */
 
#define D_PAGED        0x100
 
 
 
  /* BFD is relaxable (this means that bfd_relax_section may be able to
 
     do something) (sometimes bfd_relax_section can do something even if
 
     this is not set).  */
 
#define BFD_IS_RELAXABLE 0x200
 
 
 
  /* This may be set before writing out a BFD to request using a
 
     traditional format.  For example, this is used to request that when
 
     writing out an a.out object the symbols not be hashed to eliminate
 
     duplicates.  */
 
#define BFD_TRADITIONAL_FORMAT 0x400
 
 
 
  /* This flag indicates that the BFD contents are actually cached
 
     in memory.  If this is set, iostream points to a bfd_in_memory
 
     struct.  */
 
#define BFD_IN_MEMORY 0x800
 
 
 
  /* The sections in this BFD specify a memory page.  */
 
#define HAS_LOAD_PAGE 0x1000
 
 
 
  /* This BFD has been created by the linker and doesn't correspond
 
     to any input file.  */
 
#define BFD_LINKER_CREATED 0x2000
 
 
 
  /* This may be set before writing out a BFD to request that it
 
     be written using values for UIDs, GIDs, timestamps, etc. that
 
     will be consistent from run to run.  */
 
#define BFD_DETERMINISTIC_OUTPUT 0x4000
 
 
  /* Currently my_archive is tested before adding origin to
  /* Currently my_archive is tested before adding origin to
     anything. I believe that this can become always an add of
     anything. I believe that this can become always an add of
     origin, with origin set to 0 for non archive files.  */
     origin, with origin set to 0 for non archive files.  */
  ufile_ptr origin;
  ufile_ptr origin;
 
 
  /* Remember when output has begun, to stop strange things
  /* The origin in the archive of the proxy entry.  This will
     from happening.  */
     normally be the same as origin, except for thin archives,
  bfd_boolean output_has_begun;
     when it will contain the current offset of the proxy in the
 
     thin archive rather than the offset of the bfd in its actual
 
     container.  */
 
  ufile_ptr proxy_origin;
 
 
  /* A hash table for section names.  */
  /* A hash table for section names.  */
  struct bfd_hash_table section_htab;
  struct bfd_hash_table section_htab;
 
 
  /* Pointer to linked list of sections.  */
  /* Pointer to linked list of sections.  */
Line 98... Line 155...
  bfd_vma start_address;
  bfd_vma start_address;
 
 
  /* Used for input and output.  */
  /* Used for input and output.  */
  unsigned int symcount;
  unsigned int symcount;
 
 
  /* Symbol table for output BFD (with symcount entries).  */
  /* Symbol table for output BFD (with symcount entries).
 
     Also used by the linker to cache input BFD symbols.  */
  struct bfd_symbol  **outsymbols;
  struct bfd_symbol  **outsymbols;
 
 
  /* Used for slurped dynamic symbol tables.  */
  /* Used for slurped dynamic symbol tables.  */
  unsigned int dynsymcount;
  unsigned int dynsymcount;
 
 
  /* Pointer to structure which contains architecture information.  */
  /* Pointer to structure which contains architecture information.  */
  const struct bfd_arch_info *arch_info;
  const struct bfd_arch_info *arch_info;
 
 
  /* Flag set if symbols from this BFD should not be exported.  */
 
  bfd_boolean no_export;
 
 
 
  /* Stuff only useful for archives.  */
  /* Stuff only useful for archives.  */
  void *arelt_data;
  void *arelt_data;
  struct bfd *my_archive;      /* The containing archive BFD.  */
  struct bfd *my_archive;      /* The containing archive BFD.  */
  struct bfd *archive_next;    /* The next BFD in the archive.  */
  struct bfd *archive_next;    /* The next BFD in the archive.  */
  struct bfd *archive_head;    /* The first BFD in the archive.  */
  struct bfd *archive_head;    /* The first BFD in the archive.  */
  bfd_boolean has_armap;
  struct bfd *nested_archives; /* List of nested archive in a flattened
 
                                  thin archive.  */
 
 
  /* A chain of BFD structures involved in a link.  */
  /* A chain of BFD structures involved in a link.  */
  struct bfd *link_next;
  struct bfd *link_next;
 
 
  /* A field used by _bfd_generic_link_add_archive_symbols.  This will
  /* A field used by _bfd_generic_link_add_archive_symbols.  This will
Line 138... Line 194...
      struct xcoff_tdata *xcoff_obj_data;
      struct xcoff_tdata *xcoff_obj_data;
      struct ecoff_tdata *ecoff_obj_data;
      struct ecoff_tdata *ecoff_obj_data;
      struct ieee_data_struct *ieee_data;
      struct ieee_data_struct *ieee_data;
      struct ieee_ar_data_struct *ieee_ar_data;
      struct ieee_ar_data_struct *ieee_ar_data;
      struct srec_data_struct *srec_data;
      struct srec_data_struct *srec_data;
 
      struct verilog_data_struct *verilog_data;
      struct ihex_data_struct *ihex_data;
      struct ihex_data_struct *ihex_data;
      struct tekhex_data_struct *tekhex_data;
      struct tekhex_data_struct *tekhex_data;
      struct elf_obj_tdata *elf_obj_data;
      struct elf_obj_tdata *elf_obj_data;
      struct nlm_obj_tdata *nlm_obj_data;
      struct nlm_obj_tdata *nlm_obj_data;
      struct bout_data_struct *bout_data;
      struct bout_data_struct *bout_data;
Line 158... Line 215...
      struct cisco_core_struct *cisco_core_data;
      struct cisco_core_struct *cisco_core_data;
      struct versados_data_struct *versados_data;
      struct versados_data_struct *versados_data;
      struct netbsd_core_struct *netbsd_core_data;
      struct netbsd_core_struct *netbsd_core_data;
      struct mach_o_data_struct *mach_o_data;
      struct mach_o_data_struct *mach_o_data;
      struct mach_o_fat_data_struct *mach_o_fat_data;
      struct mach_o_fat_data_struct *mach_o_fat_data;
 
      struct plugin_data_struct *plugin_data;
      struct bfd_pef_data_struct *pef_data;
      struct bfd_pef_data_struct *pef_data;
      struct bfd_pef_xlib_data_struct *pef_xlib_data;
      struct bfd_pef_xlib_data_struct *pef_xlib_data;
      struct bfd_sym_data_struct *sym_data;
      struct bfd_sym_data_struct *sym_data;
      void *any;
      void *any;
    @}
    @}
Line 172... Line 230...
 
 
  /* Where all the allocated stuff under this BFD goes.  This is a
  /* Where all the allocated stuff under this BFD goes.  This is a
     struct objalloc *, but we use void * to avoid requiring the inclusion
     struct objalloc *, but we use void * to avoid requiring the inclusion
     of objalloc.h.  */
     of objalloc.h.  */
  void *memory;
  void *memory;
 
 
 
  /* Is the file descriptor being cached?  That is, can it be closed as
 
     needed, and re-opened when accessed later?  */
 
  unsigned int cacheable : 1;
 
 
 
  /* Marks whether there was a default target specified when the
 
     BFD was opened. This is used to select which matching algorithm
 
     to use to choose the back end.  */
 
  unsigned int target_defaulted : 1;
 
 
 
  /* ... and here: (``once'' means at least once).  */
 
  unsigned int opened_once : 1;
 
 
 
  /* Set if we have a locally maintained mtime value, rather than
 
     getting it from the file each time.  */
 
  unsigned int mtime_set : 1;
 
 
 
  /* Flag set if symbols from this BFD should not be exported.  */
 
  unsigned int no_export : 1;
 
 
 
  /* Remember when output has begun, to stop strange things
 
     from happening.  */
 
  unsigned int output_has_begun : 1;
 
 
 
  /* Have archive map.  */
 
  unsigned int has_armap : 1;
 
 
 
  /* Set if this is a thin archive.  */
 
  unsigned int is_thin_archive : 1;
@};
@};
 
 
@end example
@end example
@section Error reporting
@section Error reporting
Most BFD functions return nonzero on success (check their
Most BFD functions return nonzero on success (check their
Line 732... Line 819...
@strong{Description}@*
@strong{Description}@*
Returns the maximum page size, in bytes, as determined by
Returns the maximum page size, in bytes, as determined by
emulation.
emulation.
 
 
@strong{Returns}@*
@strong{Returns}@*
Returns the maximum page size in bytes for ELF, abort
Returns the maximum page size in bytes for ELF, 0 otherwise.
otherwise.
 
 
 
@findex bfd_emul_set_maxpagesize
@findex bfd_emul_set_maxpagesize
@subsubsection @code{bfd_emul_set_maxpagesize}
@subsubsection @code{bfd_emul_set_maxpagesize}
@strong{Synopsis}
@strong{Synopsis}
@example
@example
Line 756... Line 842...
@strong{Description}@*
@strong{Description}@*
Returns the common page size, in bytes, as determined by
Returns the common page size, in bytes, as determined by
emulation.
emulation.
 
 
@strong{Returns}@*
@strong{Returns}@*
Returns the common page size in bytes for ELF, abort otherwise.
Returns the common page size in bytes for ELF, 0 otherwise.
 
 
@findex bfd_emul_set_commonpagesize
@findex bfd_emul_set_commonpagesize
@subsubsection @code{bfd_emul_set_commonpagesize}
@subsubsection @code{bfd_emul_set_commonpagesize}
@strong{Synopsis}
@strong{Synopsis}
@example
@example

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.