2013-10-14 Richard Sandiford <rdsandiford@googlemail.com>
[platform/upstream/binutils.git] / gas / emul.h
1 /* emul.h.  File format emulation routines
2    Copyright 1995, 2003, 2005, 2007 Free Software Foundation, Inc.
3
4    This file is part of GAS, the GNU Assembler.
5
6    GAS is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3, or (at your option)
9    any later version.
10
11    GAS is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with GAS; see the file COPYING.  If not, write to the Free
18    Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
19    02110-1301, USA.  */
20
21 #ifndef EMUL_DEFS
22 #define EMUL_DEFS
23
24 struct emulation
25   {
26     void (*                   match) (const char *);
27     const char *              name;
28     void (*                   init) (void);
29     const char *(*            bfd_name) (void);
30     unsigned                  local_labels_fb : 1;
31     unsigned                  local_labels_dollar : 1;
32     unsigned                  leading_underscore : 2;
33     unsigned                  strip_underscore : 1;
34     unsigned                  default_endian : 2;
35     const char *              fake_label_name;
36     const struct format_ops * format;
37   };
38
39 COMMON struct emulation * this_emulation;
40
41 extern const char * default_emul_bfd_name (void);
42 extern void common_emul_init (void);
43
44 #endif