Line 2... |
Line 2... |
generated from "libcoff-in.h" and "coffcode.h".
|
generated from "libcoff-in.h" and "coffcode.h".
|
Run "make headers" in your build bfd/ to regenerate. */
|
Run "make headers" in your build bfd/ to regenerate. */
|
|
|
/* BFD COFF object file private structure.
|
/* BFD COFF object file private structure.
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
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 108... |
Line 108... |
|
|
/* Copy of some of the f_flags bits in the COFF filehdr structure,
|
/* Copy of some of the f_flags bits in the COFF filehdr structure,
|
used by ARM code. */
|
used by ARM code. */
|
flagword flags;
|
flagword flags;
|
|
|
|
/* coff-stgo32 EXE stub header after BFD tdata has been allocated. Its data
|
|
is kept in internal_filehdr.go32stub beforehand. */
|
|
char *go32stub;
|
} coff_data_type;
|
} coff_data_type;
|
|
|
/* Tdata for pe image files. */
|
/* Tdata for pe image files. */
|
typedef struct pe_tdata
|
typedef struct pe_tdata
|
{
|
{
|
Line 119... |
Line 122... |
struct internal_extra_pe_aouthdr pe_opthdr;
|
struct internal_extra_pe_aouthdr pe_opthdr;
|
int dll;
|
int dll;
|
int has_reloc_section;
|
int has_reloc_section;
|
bfd_boolean (*in_reloc_p) (bfd *, reloc_howto_type *);
|
bfd_boolean (*in_reloc_p) (bfd *, reloc_howto_type *);
|
flagword real_flags;
|
flagword real_flags;
|
int target_subsystem;
|
|
bfd_boolean force_minimum_alignment;
|
|
} pe_data_type;
|
} pe_data_type;
|
|
|
#define pe_data(bfd) ((bfd)->tdata.pe_obj_data)
|
#define pe_data(bfd) ((bfd)->tdata.pe_obj_data)
|
|
|
/* Tdata for XCOFF files. */
|
/* Tdata for XCOFF files. */
|
Line 167... |
Line 168... |
/* maxstack from optional header. */
|
/* maxstack from optional header. */
|
bfd_vma maxstack;
|
bfd_vma maxstack;
|
|
|
/* Used by the XCOFF backend linker. */
|
/* Used by the XCOFF backend linker. */
|
asection **csects;
|
asection **csects;
|
unsigned long *debug_indices;
|
long *debug_indices;
|
|
unsigned int *lineno_counts;
|
unsigned int import_file_id;
|
unsigned int import_file_id;
|
};
|
};
|
|
|
#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
|
#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
|
|
|
Line 217... |
Line 219... |
XCOFF section which contains this csect. */
|
XCOFF section which contains this csect. */
|
asection *enclosing;
|
asection *enclosing;
|
/* The lineno_count field for the enclosing section, because we are
|
/* The lineno_count field for the enclosing section, because we are
|
going to clobber it there. */
|
going to clobber it there. */
|
unsigned int lineno_count;
|
unsigned int lineno_count;
|
/* The first and one past the last symbol indices for symbols used
|
/* The first and last symbol indices for symbols used by this csect. */
|
by this csect. */
|
|
unsigned long first_symndx;
|
unsigned long first_symndx;
|
unsigned long last_symndx;
|
unsigned long last_symndx;
|
};
|
};
|
|
|
/* An accessor macro the xcoff_section_tdata structure. */
|
/* An accessor macro the xcoff_section_tdata structure. */
|
Line 255... |
Line 256... |
|
|
/* Symbol type. */
|
/* Symbol type. */
|
unsigned short type;
|
unsigned short type;
|
|
|
/* Symbol class. */
|
/* Symbol class. */
|
unsigned char class;
|
unsigned char symbol_class;
|
|
|
/* Number of auxiliary entries. */
|
/* Number of auxiliary entries. */
|
char numaux;
|
char numaux;
|
|
|
/* BFD to take auxiliary entries from. */
|
/* BFD to take auxiliary entries from. */
|
Line 395... |
Line 396... |
{
|
{
|
/* Next type with the same name. */
|
/* Next type with the same name. */
|
struct coff_debug_merge_type *next;
|
struct coff_debug_merge_type *next;
|
|
|
/* Class of type. */
|
/* Class of type. */
|
int class;
|
int type_class;
|
|
|
/* Symbol index where this type is defined. */
|
/* Symbol index where this type is defined. */
|
long indx;
|
long indx;
|
|
|
/* List of elements. */
|
/* List of elements. */
|
Line 591... |
Line 592... |
(struct bfd_link_hash_table *);
|
(struct bfd_link_hash_table *);
|
extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
|
extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
|
(bfd *, struct bfd_link_info *);
|
(bfd *, struct bfd_link_info *);
|
extern bfd_boolean _bfd_xcoff_bfd_final_link
|
extern bfd_boolean _bfd_xcoff_bfd_final_link
|
(bfd *, struct bfd_link_info *);
|
(bfd *, struct bfd_link_info *);
|
|
extern bfd_boolean _bfd_xcoff_define_common_symbol
|
|
(bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
|
extern bfd_boolean _bfd_ppc_xcoff_relocate_section
|
extern bfd_boolean _bfd_ppc_xcoff_relocate_section
|
(bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
|
(bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
|
struct internal_reloc *, struct internal_syment *, asection **);
|
struct internal_reloc *, struct internal_syment *, asection **);
|
|
|
/* Functions in coff-ppc.c. FIXME: These are called be pe.em in the
|
/* Functions in coff-ppc.c. FIXME: These are called by pe.em in the
|
linker, and so should start with bfd and be declared in bfd.h. */
|
linker, and so should start with bfd and be declared in bfd.h. */
|
|
|
extern bfd_boolean ppc_allocate_toc_section
|
extern bfd_boolean ppc_allocate_toc_section
|
(struct bfd_link_info *);
|
(struct bfd_link_info *);
|
extern bfd_boolean ppc_process_before_allocation
|
extern bfd_boolean ppc_process_before_allocation
|
(bfd *, struct bfd_link_info *);
|
(bfd *, struct bfd_link_info *);
|
|
|
/* Extracted from coffcode.h. */
|
/* Extracted from coffcode.h. */
|
typedef struct coff_ptr_struct
|
typedef struct coff_ptr_struct
|
{
|
{
|
/* Remembers the offset from the first symbol in the file for
|
/* Remembers the offset from the first symbol in the file for
|
this symbol. Generated by coff_renumber_symbols. */
|
this symbol. Generated by coff_renumber_symbols. */
|
Line 713... |
Line 715... |
unsigned int _bfd_auxesz;
|
unsigned int _bfd_auxesz;
|
unsigned int _bfd_relsz;
|
unsigned int _bfd_relsz;
|
unsigned int _bfd_linesz;
|
unsigned int _bfd_linesz;
|
unsigned int _bfd_filnmlen;
|
unsigned int _bfd_filnmlen;
|
bfd_boolean _bfd_coff_long_filenames;
|
bfd_boolean _bfd_coff_long_filenames;
|
|
|
bfd_boolean _bfd_coff_long_section_names;
|
bfd_boolean _bfd_coff_long_section_names;
|
|
bfd_boolean (*_bfd_coff_set_long_section_names)
|
|
(bfd *, int);
|
|
|
unsigned int _bfd_coff_default_section_alignment_power;
|
unsigned int _bfd_coff_default_section_alignment_power;
|
bfd_boolean _bfd_coff_force_symnames_in_strings;
|
bfd_boolean _bfd_coff_force_symnames_in_strings;
|
unsigned int _bfd_coff_debug_string_prefix_length;
|
unsigned int _bfd_coff_debug_string_prefix_length;
|
|
|
void (*_bfd_coff_swap_filehdr_in)
|
void (*_bfd_coff_swap_filehdr_in)
|
Line 800... |
Line 806... |
(bfd *, struct coff_final_link_info *);
|
(bfd *, struct coff_final_link_info *);
|
|
|
bfd_boolean (*_bfd_coff_final_link_postscript)
|
bfd_boolean (*_bfd_coff_final_link_postscript)
|
(bfd *, struct coff_final_link_info *);
|
(bfd *, struct coff_final_link_info *);
|
|
|
|
bfd_boolean (*_bfd_coff_print_pdata)
|
|
(bfd *, void *);
|
|
|
} bfd_coff_backend_data;
|
} bfd_coff_backend_data;
|
|
|
#define coff_backend_info(abfd) \
|
#define coff_backend_info(abfd) \
|
((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
|
((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
|
|
|
Line 847... |
Line 856... |
#define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
|
#define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
|
#define bfd_coff_long_filenames(abfd) \
|
#define bfd_coff_long_filenames(abfd) \
|
(coff_backend_info (abfd)->_bfd_coff_long_filenames)
|
(coff_backend_info (abfd)->_bfd_coff_long_filenames)
|
#define bfd_coff_long_section_names(abfd) \
|
#define bfd_coff_long_section_names(abfd) \
|
(coff_backend_info (abfd)->_bfd_coff_long_section_names)
|
(coff_backend_info (abfd)->_bfd_coff_long_section_names)
|
|
#define bfd_coff_set_long_section_names(abfd, enable) \
|
|
((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable))
|
#define bfd_coff_default_section_alignment_power(abfd) \
|
#define bfd_coff_default_section_alignment_power(abfd) \
|
(coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
|
(coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
|
#define bfd_coff_swap_filehdr_in(abfd, i,o) \
|
#define bfd_coff_swap_filehdr_in(abfd, i,o) \
|
((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
|
((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
|
|
|
Line 932... |
Line 943... |
#define bfd_coff_link_output_has_begun(a,p) \
|
#define bfd_coff_link_output_has_begun(a,p) \
|
((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
|
((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
|
#define bfd_coff_final_link_postscript(a,p) \
|
#define bfd_coff_final_link_postscript(a,p) \
|
((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
|
((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
|
|
|
|
#define bfd_coff_have_print_pdata(a) \
|
|
(coff_backend_info (a)->_bfd_coff_print_pdata)
|
|
#define bfd_coff_print_pdata(a,p) \
|
|
((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p))
|
|
|
|
/* Macro: Returns true if the bfd is a PE executable as opposed to a
|
|
PE object file. */
|
|
#define bfd_pei_p(abfd) \
|
|
(CONST_STRNEQ ((abfd)->xvec->name, "pei-"))
|
|
|
No newline at end of file
|
No newline at end of file
|