www.delorie.com/gnu/docs/binutils/bfd_202.html   search  
 
Buy GNU books!


Untitled Document

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2.2.6 bfd_coff_backend_data

 
/* COFF symbol classifications.  */

enum coff_symbol_classification
{
  /* Global symbol.  */
  COFF_SYMBOL_GLOBAL,
  /* Common symbol.  */
  COFF_SYMBOL_COMMON,
  /* Undefined symbol.  */
  COFF_SYMBOL_UNDEFINED,
  /* Local symbol.  */
  COFF_SYMBOL_LOCAL,
  /* PE section symbol.  */
  COFF_SYMBOL_PE_SECTION
};

Special entry points for gdb to swap in coff symbol table parts:
 
typedef struct
{
  void (*_bfd_coff_swap_aux_in)
    PARAMS ((bfd *, PTR, int, int, int, int, PTR));

  void (*_bfd_coff_swap_sym_in)
    PARAMS ((bfd *, PTR, PTR));

  void (*_bfd_coff_swap_lineno_in)
    PARAMS ((bfd *, PTR, PTR));

  unsigned int (*_bfd_coff_swap_aux_out)
    PARAMS ((bfd *, PTR, int, int, int, int, PTR));

  unsigned int (*_bfd_coff_swap_sym_out)
    PARAMS ((bfd *, PTR, PTR));

  unsigned int (*_bfd_coff_swap_lineno_out)
    PARAMS ((bfd *, PTR, PTR));

  unsigned int (*_bfd_coff_swap_reloc_out)
    PARAMS ((bfd *, PTR, PTR));

  unsigned int (*_bfd_coff_swap_filehdr_out)
    PARAMS ((bfd *, PTR, PTR));

  unsigned int (*_bfd_coff_swap_aouthdr_out)
    PARAMS ((bfd *, PTR, PTR));

  unsigned int (*_bfd_coff_swap_scnhdr_out)
    PARAMS ((bfd *, PTR, PTR));

  unsigned int _bfd_filhsz;
  unsigned int _bfd_aoutsz;
  unsigned int _bfd_scnhsz;
  unsigned int _bfd_symesz;
  unsigned int _bfd_auxesz;
  unsigned int _bfd_relsz;
  unsigned int _bfd_linesz;
  unsigned int _bfd_filnmlen;
  boolean _bfd_coff_long_filenames;
  boolean _bfd_coff_long_section_names;
  unsigned int _bfd_coff_default_section_alignment_power;
  boolean _bfd_coff_force_symnames_in_strings;
  unsigned int _bfd_coff_debug_string_prefix_length;

  void (*_bfd_coff_swap_filehdr_in)
    PARAMS ((bfd *, PTR, PTR));

  void (*_bfd_coff_swap_aouthdr_in)
    PARAMS ((bfd *, PTR, PTR));

  void (*_bfd_coff_swap_scnhdr_in)
    PARAMS ((bfd *, PTR, PTR));

  void (*_bfd_coff_swap_reloc_in)
    PARAMS ((bfd *abfd, PTR, PTR));

  boolean (*_bfd_coff_bad_format_hook)
    PARAMS ((bfd *, PTR));

  boolean (*_bfd_coff_set_arch_mach_hook)
    PARAMS ((bfd *, PTR));

  PTR (*_bfd_coff_mkobject_hook)
    PARAMS ((bfd *, PTR, PTR));

  boolean (*_bfd_styp_to_sec_flags_hook)
    PARAMS ((bfd *, PTR, const char *, asection *, flagword *));

  void (*_bfd_set_alignment_hook)
    PARAMS ((bfd *, asection *, PTR));

  boolean (*_bfd_coff_slurp_symbol_table)
    PARAMS ((bfd *));

  boolean (*_bfd_coff_symname_in_debug)
    PARAMS ((bfd *, struct internal_syment *));

  boolean (*_bfd_coff_pointerize_aux_hook)
    PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
            unsigned int, combined_entry_type *));

  boolean (*_bfd_coff_print_aux)
    PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *,
            combined_entry_type *, unsigned int));

  void (*_bfd_coff_reloc16_extra_cases)
    PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
           bfd_byte *, unsigned int *, unsigned int *));

  int (*_bfd_coff_reloc16_estimate)
    PARAMS ((bfd *, asection *, arelent *, unsigned int,
            struct bfd_link_info *));

  enum coff_symbol_classification (*_bfd_coff_classify_symbol)
    PARAMS ((bfd *, struct internal_syment *));

  boolean (*_bfd_coff_compute_section_file_positions)
    PARAMS ((bfd *));

  boolean (*_bfd_coff_start_final_link)
    PARAMS ((bfd *, struct bfd_link_info *));

  boolean (*_bfd_coff_relocate_section)
    PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
            struct internal_reloc *, struct internal_syment *, asection **));

  reloc_howto_type *(*_bfd_coff_rtype_to_howto)
    PARAMS ((bfd *, asection *, struct internal_reloc *,
            struct coff_link_hash_entry *, struct internal_syment *,
            bfd_vma *));

  boolean (*_bfd_coff_adjust_symndx)
    PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
            struct internal_reloc *, boolean *));

  boolean (*_bfd_coff_link_add_one_symbol)
    PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword,
            asection *, bfd_vma, const char *, boolean, boolean,
            struct bfd_link_hash_entry **));

  boolean (*_bfd_coff_link_output_has_begun)
    PARAMS ((bfd *, struct coff_final_link_info *));

  boolean (*_bfd_coff_final_link_postscript)
    PARAMS ((bfd *, struct coff_final_link_info *));

} bfd_coff_backend_data;

#define coff_backend_info(abfd) \
  ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)

#define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
  ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))

#define bfd_coff_swap_sym_in(a,e,i) \
  ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))

#define bfd_coff_swap_lineno_in(a,e,i) \
  ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))

#define bfd_coff_swap_reloc_out(abfd, i, o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))

#define bfd_coff_swap_lineno_out(abfd, i, o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))

#define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
  ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))

#define bfd_coff_swap_sym_out(abfd, i,o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))

#define bfd_coff_swap_scnhdr_out(abfd, i,o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))

#define bfd_coff_swap_filehdr_out(abfd, i,o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))

#define bfd_coff_swap_aouthdr_out(abfd, i,o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))

#define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
#define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
#define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
#define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
#define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
#define bfd_coff_relsz(abfd)  (coff_backend_info (abfd)->_bfd_relsz)
#define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
#define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
#define bfd_coff_long_filenames(abfd) \
  (coff_backend_info (abfd)->_bfd_coff_long_filenames)
#define bfd_coff_long_section_names(abfd) \
  (coff_backend_info (abfd)->_bfd_coff_long_section_names)
#define bfd_coff_default_section_alignment_power(abfd) \
  (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
#define bfd_coff_swap_filehdr_in(abfd, i,o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))

#define bfd_coff_swap_aouthdr_in(abfd, i,o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))

#define bfd_coff_swap_scnhdr_in(abfd, i,o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))

#define bfd_coff_swap_reloc_in(abfd, i, o) \
  ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))

#define bfd_coff_bad_format_hook(abfd, filehdr) \
  ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))

#define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
  ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
#define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
  ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook) (abfd, filehdr, aouthdr))

#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
  ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
   (abfd, scnhdr, name, section, flags_ptr))

#define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
  ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))

#define bfd_coff_slurp_symbol_table(abfd)\
  ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))

#define bfd_coff_symname_in_debug(abfd, sym)\
  ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))

#define bfd_coff_force_symnames_in_strings(abfd)\
  (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)

#define bfd_coff_debug_string_prefix_length(abfd)\
  (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)

#define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
  ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
   (abfd, file, base, symbol, aux, indaux))

#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)\
  ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
   (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))

#define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
  ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
   (abfd, section, reloc, shrink, link_info))

#define bfd_coff_classify_symbol(abfd, sym)\
  ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
   (abfd, sym))

#define bfd_coff_compute_section_file_positions(abfd)\
  ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
   (abfd))

#define bfd_coff_start_final_link(obfd, info)\
  ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
   (obfd, info))
#define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
  ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
   (obfd, info, ibfd, o, con, rel, isyms, secs))
#define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
  ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
   (abfd, sec, rel, h, sym, addendp))
#define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
  ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
   (obfd, info, ibfd, sec, rel, adjustedp))
#define bfd_coff_link_add_one_symbol(info,abfd,name,flags,section,value,string,cp,coll,hashp)\
  ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
   (info, abfd, name, flags, section, value, string, cp, coll, hashp))

#define 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) \
  ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a,p))


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003