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