Subversion Repositories Kolibri OS

Rev

Rev 5222 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* obj.h - defines the object dependent hooks for all object
  2.    format backends.
  3.  
  4.    Copyright (C) 1987-2015 Free Software Foundation, Inc.
  5.  
  6.    This file is part of GAS, the GNU Assembler.
  7.  
  8.    GAS is free software; you can redistribute it and/or modify
  9.    it under the terms of the GNU General Public License as published by
  10.    the Free Software Foundation; either version 3, or (at your option)
  11.    any later version.
  12.  
  13.    GAS is distributed in the hope that it will be useful,
  14.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.    GNU General Public License for more details.
  17.  
  18.    You should have received a copy of the GNU General Public License
  19.    along with GAS; see the file COPYING.  If not, write to the Free
  20.    Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
  21.    02110-1301, USA.  */
  22.  
  23. char *obj_default_output_file_name (void);
  24. void obj_emit_relocations (char **where, fixS * fixP,
  25.                            relax_addressT segment_address_in_file);
  26. void obj_emit_strings (char **where);
  27. void obj_emit_symbols (char **where, symbolS * symbols);
  28. #ifndef obj_read_begin_hook
  29. void obj_read_begin_hook (void);
  30. #endif
  31.  
  32. #ifndef obj_symbol_new_hook
  33. void obj_symbol_new_hook (symbolS * symbolP);
  34. #endif
  35.  
  36. void obj_symbol_to_chars (char **where, symbolS * symbolP);
  37.  
  38. extern const pseudo_typeS obj_pseudo_table[];
  39.  
  40. struct format_ops {
  41.   int flavor;
  42.   unsigned dfl_leading_underscore : 1;
  43.   unsigned emit_section_symbols : 1;
  44.   void (*begin) (void);
  45.   void (*app_file) (const char *, int);
  46.   void (*frob_symbol) (symbolS *, int *);
  47.   void (*frob_file) (void);
  48.   void (*frob_file_before_adjust) (void);
  49.   void (*frob_file_before_fix) (void);
  50.   void (*frob_file_after_relocs) (void);
  51.   bfd_vma (*s_get_size) (symbolS *);
  52.   void (*s_set_size) (symbolS *, bfd_vma);
  53.   bfd_vma (*s_get_align) (symbolS *);
  54.   void (*s_set_align) (symbolS *, bfd_vma);
  55.   int (*s_get_other) (symbolS *);
  56.   void (*s_set_other) (symbolS *, int);
  57.   int (*s_get_desc) (symbolS *);
  58.   void (*s_set_desc) (symbolS *, int);
  59.   int (*s_get_type) (symbolS *);
  60.   void (*s_set_type) (symbolS *, int);
  61.   void (*copy_symbol_attributes) (symbolS *, symbolS *);
  62.   void (*generate_asm_lineno) (void);
  63.   void (*process_stab) (segT, int, const char *, int, int, int);
  64.   int (*separate_stab_sections) (void);
  65.   void (*init_stab_section) (segT);
  66.   int (*sec_sym_ok_for_reloc) (asection *);
  67.   void (*pop_insert) (void);
  68.   /* For configurations using ECOFF_DEBUGGING, this callback is used.  */
  69.   void (*ecoff_set_ext) (symbolS *, struct ecoff_extr *);
  70.  
  71.   void (*read_begin_hook) (void);
  72.   void (*symbol_new_hook) (symbolS *);
  73.   void (*symbol_clone_hook) (symbolS *, symbolS *);
  74.   void (*adjust_symtab) (void);
  75. };
  76.  
  77. extern const struct format_ops elf_format_ops;
  78. extern const struct format_ops ecoff_format_ops;
  79. extern const struct format_ops coff_format_ops;
  80. extern const struct format_ops aout_format_ops;
  81.  
  82. #ifndef this_format
  83. COMMON const struct format_ops *this_format;
  84. #endif
  85.  
  86. /* end of obj.h */
  87.