obj.h revision 60484
133965Sjdp/* obj.h - defines the object dependent hooks for all object 233965Sjdp format backends. 333965Sjdp 460484Sobrien Copyright (C) 1987, 90, 91, 92, 93, 95, 96, 97, 99, 2000 560484Sobrien Free Software Foundation, Inc. 633965Sjdp 733965Sjdp This file is part of GAS, the GNU Assembler. 833965Sjdp 933965Sjdp GAS is free software; you can redistribute it and/or modify 1033965Sjdp it under the terms of the GNU General Public License as published by 1133965Sjdp the Free Software Foundation; either version 2, or (at your option) 1233965Sjdp any later version. 1333965Sjdp 1433965Sjdp GAS is distributed in the hope that it will be useful, 1533965Sjdp but WITHOUT ANY WARRANTY; without even the implied warranty of 1633965Sjdp MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1733965Sjdp GNU General Public License for more details. 1833965Sjdp 1933965Sjdp You should have received a copy of the GNU General Public License 2060484Sobrien along with GAS; see the file COPYING. If not, write to the Free 2160484Sobrien Software Foundation, 59 Temple Place - Suite 330, Boston, MA 2260484Sobrien 02111-1307, USA. */ 2333965Sjdp 2433965Sjdpchar *obj_default_output_file_name PARAMS ((void)); 2533965Sjdpvoid obj_emit_relocations PARAMS ((char **where, fixS * fixP, 2633965Sjdp relax_addressT segment_address_in_file)); 2733965Sjdpvoid obj_emit_strings PARAMS ((char **where)); 2833965Sjdpvoid obj_emit_symbols PARAMS ((char **where, symbolS * symbols)); 2933965Sjdp#ifndef obj_read_begin_hook 3033965Sjdpvoid obj_read_begin_hook PARAMS ((void)); 3133965Sjdp#endif 3233965Sjdp#ifndef BFD_ASSEMBLER 3333965Sjdpvoid obj_crawl_symbol_chain PARAMS ((object_headers * headers)); 3433965Sjdpvoid obj_header_append PARAMS ((char **where, object_headers * headers)); 3533965Sjdp#ifndef obj_pre_write_hook 3633965Sjdpvoid obj_pre_write_hook PARAMS ((object_headers * headers)); 3733965Sjdp#endif 3833965Sjdp#endif 3933965Sjdp 4033965Sjdp#ifndef obj_symbol_new_hook 4133965Sjdpvoid obj_symbol_new_hook PARAMS ((symbolS * symbolP)); 4233965Sjdp#endif 4333965Sjdp 4433965Sjdpvoid obj_symbol_to_chars PARAMS ((char **where, symbolS * symbolP)); 4533965Sjdp 4633965Sjdpextern const pseudo_typeS obj_pseudo_table[]; 4733965Sjdp 4833965Sjdp#ifdef BFD_ASSEMBLER 4933965Sjdpstruct format_ops { 5033965Sjdp int flavor; 5133965Sjdp unsigned dfl_leading_underscore : 1; 5233965Sjdp unsigned emit_section_symbols : 1; 5333965Sjdp void (*frob_symbol) PARAMS ((symbolS *, int *)); 5433965Sjdp void (*frob_file) PARAMS ((void)); 5533965Sjdp void (*frob_file_after_relocs) PARAMS ((void)); 5633965Sjdp bfd_vma (*s_get_size) PARAMS ((symbolS *)); 5733965Sjdp void (*s_set_size) PARAMS ((symbolS *, bfd_vma)); 5833965Sjdp bfd_vma (*s_get_align) PARAMS ((symbolS *)); 5933965Sjdp void (*s_set_align) PARAMS ((symbolS *, bfd_vma)); 6060484Sobrien int (*s_get_other) PARAMS ((symbolS *)); 6160484Sobrien int (*s_get_desc) PARAMS ((symbolS *)); 6233965Sjdp void (*copy_symbol_attributes) PARAMS ((symbolS *, symbolS *)); 6360484Sobrien void (*generate_asm_lineno) PARAMS ((void)); 6433965Sjdp void (*process_stab) PARAMS ((segT, int, const char *, int, int, int)); 6533965Sjdp int (*sec_sym_ok_for_reloc) PARAMS ((asection *)); 6633965Sjdp void (*pop_insert) PARAMS ((void)); 6733965Sjdp /* For configurations using ECOFF_DEBUGGING, this callback is used. */ 6833965Sjdp void (*ecoff_set_ext) PARAMS ((symbolS *, struct ecoff_extr *)); 6933965Sjdp 7033965Sjdp void (*read_begin_hook) PARAMS ((void)); 7133965Sjdp void (*symbol_new_hook) PARAMS ((symbolS *)); 7233965Sjdp}; 7333965Sjdp 7433965Sjdpextern const struct format_ops elf_format_ops; 7533965Sjdpextern const struct format_ops ecoff_format_ops; 7633965Sjdpextern const struct format_ops coff_format_ops; 7760484Sobrienextern const struct format_ops aout_format_ops; 7833965Sjdp 7933965Sjdp#ifndef this_format 8033965SjdpCOMMON const struct format_ops *this_format; 8133965Sjdp#endif 8233965Sjdp#endif 8333965Sjdp 8433965Sjdp/* end of obj.h */ 85