Line 1... |
Line 1... |
/* libbfd.h -- Declarations used by bfd library *implementation*.
|
/* libbfd.h -- Declarations used by bfd library *implementation*.
|
(This include file is not for users of the library.)
|
(This include file is not for users of the library.)
|
|
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
2010, 2011
|
2010, 2011, 2012
|
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
|
|
Written by Cygnus Support.
|
Written by Cygnus Support.
|
|
|
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
Line 62... |
Line 62... |
};
|
};
|
|
|
/* tdata for an archive. For an input archive, cache
|
/* tdata for an archive. For an input archive, cache
|
needs to be free()'d. For an output archive, symdefs do. */
|
needs to be free()'d. For an output archive, symdefs do. */
|
|
|
struct artdata {
|
struct artdata
|
|
{
|
file_ptr first_file_filepos;
|
file_ptr first_file_filepos;
|
/* Speed up searching the armap */
|
/* Speed up searching the armap */
|
htab_t cache;
|
htab_t cache;
|
bfd *archive_head; /* Only interesting in output routines */
|
bfd *archive_head; /* Only interesting in output routines. */
|
carsym *symdefs; /* the symdef entries */
|
carsym *symdefs; /* The symdef entries. */
|
symindex symdef_count; /* how many there are */
|
symindex symdef_count; /* How many there are. */
|
char *extended_names; /* clever intel extension */
|
char *extended_names; /* Clever intel extension. */
|
bfd_size_type extended_names_size; /* Size of extended names */
|
bfd_size_type extended_names_size; /* Size of extended names. */
|
/* when more compilers are standard C, this can be a time_t */
|
/* When more compilers are standard C, this can be a time_t. */
|
long armap_timestamp; /* Timestamp value written into armap.
|
long armap_timestamp; /* Timestamp value written into armap.
|
This is used for BSD archives to check
|
This is used for BSD archives to check
|
that the timestamp is recent enough
|
that the timestamp is recent enough
|
for the BSD linker to not complain,
|
for the BSD linker to not complain,
|
just before we finish writing an
|
just before we finish writing an
|
Line 86... |
Line 87... |
};
|
};
|
|
|
#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
|
#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
|
|
|
/* Goes in bfd's arelt_data slot */
|
/* Goes in bfd's arelt_data slot */
|
struct areltdata {
|
struct areltdata
|
char * arch_header; /* it's actually a string */
|
{
|
unsigned int parsed_size; /* octets of filesize not including ar_hdr */
|
char * arch_header; /* It's actually a string. */
|
unsigned int extra_size; /* BSD4.4: extra bytes after the header. */
|
bfd_size_type parsed_size; /* Octets of filesize not including ar_hdr. */
|
char *filename; /* null-terminated */
|
bfd_size_type extra_size; /* BSD4.4: extra bytes after the header. */
|
file_ptr origin; /* for element of a thin archive */
|
char *filename; /* Null-terminated. */
|
|
file_ptr origin; /* For element of a thin archive. */
|
};
|
};
|
|
|
#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
|
#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
|
|
|
extern void *bfd_malloc
|
extern void *bfd_malloc
|
Line 201... |
Line 203... |
|
|
extern void *_bfd_generic_read_ar_hdr
|
extern void *_bfd_generic_read_ar_hdr
|
(bfd *);
|
(bfd *);
|
extern void _bfd_ar_spacepad
|
extern void _bfd_ar_spacepad
|
(char *, size_t, const char *, long);
|
(char *, size_t, const char *, long);
|
|
extern bfd_boolean _bfd_ar_sizepad
|
|
(char *, size_t, bfd_size_type);
|
|
|
extern void *_bfd_generic_read_ar_hdr_mag
|
extern void *_bfd_generic_read_ar_hdr_mag
|
(bfd *, const char *);
|
(bfd *, const char *);
|
|
|
extern bfd_boolean _bfd_generic_write_ar_hdr
|
extern bfd_boolean _bfd_generic_write_ar_hdr
|
Line 547... |
Line 551... |
|
|
/* Find inliner info after calling bfd_find_nearest_line. */
|
/* Find inliner info after calling bfd_find_nearest_line. */
|
extern bfd_boolean _bfd_dwarf2_find_inliner_info
|
extern bfd_boolean _bfd_dwarf2_find_inliner_info
|
(bfd *, const char **, const char **, unsigned int *, void **);
|
(bfd *, const char **, const char **, unsigned int *, void **);
|
|
|
|
/* Read DWARF 2 debugging information. */
|
|
extern bfd_boolean _bfd_dwarf2_slurp_debug_info
|
|
(bfd *, bfd *, const struct dwarf_debug_section *, asymbol **, void **);
|
|
|
|
/* Clean up the data used to handle DWARF 2 debugging information. */
|
|
extern void _bfd_dwarf2_cleanup_debug_info
|
|
(bfd *, void **);
|
|
|
/* Create a new section entry. */
|
/* Create a new section entry. */
|
extern struct bfd_hash_entry *bfd_section_hash_newfunc
|
extern struct bfd_hash_entry *bfd_section_hash_newfunc
|
(struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
|
(struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
|
|
|
/* A routine to create entries for a bfd_link_hash_table. */
|
/* A routine to create entries for a bfd_link_hash_table. */
|