bfd: symbol handling functions

 
 2.7.5 Symbol handling functions
 -------------------------------
 
 2.7.5.1 'bfd_get_symtab_upper_bound'
 ....................................
 
 *Description*
 Return the number of bytes required to store a vector of pointers to
 'asymbols' for all the symbols in the BFD ABFD, including a terminal
 NULL pointer.  If there are no symbols in the BFD, then return 0.  If an
 error occurs, return -1.
      #define bfd_get_symtab_upper_bound(abfd) \
             BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 
 
 2.7.5.2 'bfd_is_local_label'
 ............................
 
 *Synopsis*
      bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
    *Description*
 Return TRUE if the given symbol SYM in the BFD ABFD is a compiler
 generated local label, else return FALSE.
 
 2.7.5.3 'bfd_is_local_label_name'
 .................................
 
 *Synopsis*
      bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
    *Description*
 Return TRUE if a symbol with the name NAME in the BFD ABFD is a compiler
 generated local label, else return FALSE. This just checks whether the
 name has the form of a local label.
      #define bfd_is_local_label_name(abfd, name) \
             BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 
 
 2.7.5.4 'bfd_is_target_special_symbol'
 ......................................
 
 *Synopsis*
      bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
    *Description*
 Return TRUE iff a symbol SYM in the BFD ABFD is something special to the
 particular target represented by the BFD. Such symbols should normally
 not be mentioned to the user.
      #define bfd_is_target_special_symbol(abfd, sym) \
             BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
 
 
 2.7.5.5 'bfd_canonicalize_symtab'
 .................................
 
 *Description*
 Read the symbols from the BFD ABFD, and fills in the vector LOCATION
 with pointers to the symbols and a trailing NULL. Return the actual
 number of symbol pointers, not including the NULL.
      #define bfd_canonicalize_symtab(abfd, location) \
             BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 
 
 2.7.5.6 'bfd_set_symtab'
 ........................
 
 *Synopsis*
      bfd_boolean bfd_set_symtab
         (bfd *abfd, asymbol **location, unsigned int count);
    *Description*
 Arrange that when the output BFD ABFD is closed, the table LOCATION of
 COUNT pointers to symbols will be written.
 
 2.7.5.7 'bfd_print_symbol_vandf'
 ................................
 
 *Synopsis*
      void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
    *Description*
 Print the value and flags of the SYMBOL supplied to the stream FILE.
 
 2.7.5.8 'bfd_make_empty_symbol'
 ...............................
 
 *Description*
 Create a new 'asymbol' structure for the BFD ABFD and return a pointer
 to it.
 
    This routine is necessary because each back end has private
 information surrounding the 'asymbol'.  Building your own 'asymbol' and
 pointing to it will not create the private information, and will cause
 problems later on.
      #define bfd_make_empty_symbol(abfd) \
             BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
 
 
 2.7.5.9 '_bfd_generic_make_empty_symbol'
 ........................................
 
 *Synopsis*
      asymbol *_bfd_generic_make_empty_symbol (bfd *);
    *Description*
 Create a new 'asymbol' structure for the BFD ABFD and return a pointer
 to it.  Used by core file routines, binary back-end and anywhere else
 where no private info is needed.
 
 2.7.5.10 'bfd_make_debug_symbol'
 ................................
 
 *Description*
 Create a new 'asymbol' structure for the BFD ABFD, to be used as a
 debugging symbol.  Further details of its use have yet to be worked out.
      #define bfd_make_debug_symbol(abfd,ptr,size) \
             BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
 
 
 2.7.5.11 'bfd_decode_symclass'
 ..............................
 
 *Description*
 Return a character corresponding to the symbol class of SYMBOL, or '?'
 for an unknown class.
 
    *Synopsis*
      int bfd_decode_symclass (asymbol *symbol);
 
 2.7.5.12 'bfd_is_undefined_symclass'
 ....................................
 
 *Description*
 Returns non-zero if the class symbol returned by bfd_decode_symclass
 represents an undefined symbol.  Returns zero otherwise.
 
    *Synopsis*
      bfd_boolean bfd_is_undefined_symclass (int symclass);
 
 2.7.5.13 'bfd_symbol_info'
 ..........................
 
 *Description*
 Fill in the basic info about symbol that nm needs.  Additional info may
 be added by the back-ends after calling this function.
 
    *Synopsis*
      void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
 
 2.7.5.14 'bfd_copy_private_symbol_data'
 .......................................
 
 *Synopsis*
      bfd_boolean bfd_copy_private_symbol_data
         (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
    *Description*
 Copy private symbol information from ISYM in the BFD IBFD to the symbol
 OSYM in the BFD OBFD.  Return 'TRUE' on success, 'FALSE' on error.
 Possible error returns are:
 
    * 'bfd_error_no_memory' - Not enough memory exists to create private
      data for OSEC.
      #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
             BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
                       (ibfd, isymbol, obfd, osymbol))