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