GNU Binutils v2.34
[binutils.git] / gas / emul.h
1 /* emul.h.  File format emulation routines
2    Copyright (C) 1995-2020 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                  default_endian : 2;
34     const char *              fake_label_name;
35     const struct format_ops * format;
36   };
37
38 COMMON struct emulation * this_emulation;
39
40 extern const char * default_emul_bfd_name (void);
41 extern void common_emul_init (void);
42
43 #endif