obj.h revision 130561
11556Srgrimes/* obj.h - defines the object dependent hooks for all object 21556Srgrimes format backends. 31556Srgrimes 41556Srgrimes Copyright 1987, 1990, 1991, 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2002 51556Srgrimes Free Software Foundation, Inc. 61556Srgrimes 71556Srgrimes This file is part of GAS, the GNU Assembler. 81556Srgrimes 91556Srgrimes GAS is free software; you can redistribute it and/or modify 101556Srgrimes it under the terms of the GNU General Public License as published by 111556Srgrimes the Free Software Foundation; either version 2, or (at your option) 121556Srgrimes any later version. 131556Srgrimes 141556Srgrimes GAS is distributed in the hope that it will be useful, 151556Srgrimes but WITHOUT ANY WARRANTY; without even the implied warranty of 161556Srgrimes MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 171556Srgrimes GNU General Public License for more details. 181556Srgrimes 191556Srgrimes You should have received a copy of the GNU General Public License 201556Srgrimes along with GAS; see the file COPYING. If not, write to the Free 211556Srgrimes Software Foundation, 59 Temple Place - Suite 330, Boston, MA 221556Srgrimes 02111-1307, USA. */ 231556Srgrimes 241556Srgrimeschar *obj_default_output_file_name (void); 251556Srgrimesvoid obj_emit_relocations (char **where, fixS * fixP, 261556Srgrimes relax_addressT segment_address_in_file); 271556Srgrimesvoid obj_emit_strings (char **where); 281556Srgrimesvoid obj_emit_symbols (char **where, symbolS * symbols); 291556Srgrimes#ifndef obj_read_begin_hook 301556Srgrimesvoid obj_read_begin_hook (void); 311556Srgrimes#endif 321556Srgrimes#ifndef BFD_ASSEMBLER 331556Srgrimesvoid obj_crawl_symbol_chain (object_headers * headers); 3436150Scharniervoid obj_header_append (char **where, object_headers * headers); 3536150Scharnier#ifndef obj_pre_write_hook 3636150Scharniervoid obj_pre_write_hook (object_headers * headers); 371556Srgrimes#endif 3899110Sobrien#endif 3999110Sobrien 401556Srgrimes#ifndef obj_symbol_new_hook 41100437Stjrvoid obj_symbol_new_hook (symbolS * symbolP); 4217987Speter#endif 43102576Skeramida 4417987Spetervoid obj_symbol_to_chars (char **where, symbolS * symbolP); 45153091Sstefanf 4645266Scracauerextern const pseudo_typeS obj_pseudo_table[]; 4753891Scracauer 4817987Speter#ifdef BFD_ASSEMBLER 491556Srgrimesstruct format_ops { 501556Srgrimes int flavor; 511556Srgrimes unsigned dfl_leading_underscore : 1; 521556Srgrimes unsigned emit_section_symbols : 1; 531556Srgrimes void (*begin) (void); 541556Srgrimes void (*app_file) (const char *); 551556Srgrimes void (*frob_symbol) (symbolS *, int *); 561556Srgrimes void (*frob_file) (void); 571556Srgrimes void (*frob_file_before_adjust) (void); 581556Srgrimes void (*frob_file_before_fix) (void); 591556Srgrimes void (*frob_file_after_relocs) (void); 601556Srgrimes bfd_vma (*s_get_size) (symbolS *); 611556Srgrimes void (*s_set_size) (symbolS *, bfd_vma); 621556Srgrimes bfd_vma (*s_get_align) (symbolS *); 631556Srgrimes void (*s_set_align) (symbolS *, bfd_vma); 641556Srgrimes int (*s_get_other) (symbolS *); 651556Srgrimes void (*s_set_other) (symbolS *, int); 661556Srgrimes int (*s_get_desc) (symbolS *); 671556Srgrimes void (*s_set_desc) (symbolS *, int); 681556Srgrimes int (*s_get_type) (symbolS *); 691556Srgrimes void (*s_set_type) (symbolS *, int); 7017987Speter void (*copy_symbol_attributes) (symbolS *, symbolS *); 711556Srgrimes void (*generate_asm_lineno) (void); 7217987Speter void (*process_stab) (segT, int, const char *, int, int, int); 731556Srgrimes int (*separate_stab_sections) (void); 7417987Speter void (*init_stab_section) (segT); 751556Srgrimes int (*sec_sym_ok_for_reloc) (asection *); 761556Srgrimes void (*pop_insert) (void); 77201053Sjilles /* For configurations using ECOFF_DEBUGGING, this callback is used. */ 781556Srgrimes void (*ecoff_set_ext) (symbolS *, struct ecoff_extr *); 791556Srgrimes 801556Srgrimes void (*read_begin_hook) (void); 81193169Sstefanf void (*symbol_new_hook) (symbolS *); 821556Srgrimes}; 831556Srgrimes 841556Srgrimesextern const struct format_ops elf_format_ops; 851556Srgrimesextern const struct format_ops ecoff_format_ops; 861556Srgrimesextern const struct format_ops coff_format_ops; 8717987Speterextern const struct format_ops aout_format_ops; 881556Srgrimes 891556Srgrimes#ifndef this_format 90149933SstefanfCOMMON const struct format_ops *this_format; 91149933Sstefanf#endif 9290111Simp#endif 9390111Simp 94205154Sjilles/* end of obj.h */ 9590111Simp