]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - binutils/binemul.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / binutils / binemul.h
CommitLineData
eb1e0e80 1/* Binutils emulation layer.
250d07de 2 Copyright (C) 2002-2021 Free Software Foundation, Inc.
ad94be02 3 Written by Tom Rix, Red Hat Inc.
eb1e0e80
NC
4
5 This file is part of GNU Binutils.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
32866df7 9 the Free Software Foundation; either version 3 of the License, or
eb1e0e80
NC
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
32866df7
NC
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
eb1e0e80
NC
21
22#ifndef BINEMUL_H
23#define BINEMUL_H
24
3db64b00 25#include "sysdep.h"
eb1e0e80
NC
26#include "bfd.h"
27#include "bucomm.h"
28
2da42df6
AJ
29extern void ar_emul_usage (FILE *);
30extern void ar_emul_default_usage (FILE *);
492d5973
L
31extern bfd_boolean ar_emul_append (bfd **, char *, const char *,
32 bfd_boolean, bfd_boolean);
f3016d6c
HC
33extern bfd_boolean ar_emul_append_bfd (bfd **, bfd *,
34 bfd_boolean, bfd_boolean);
35extern bfd_boolean ar_emul_default_append (bfd **, bfd *,
492d5973 36 bfd_boolean, bfd_boolean);
13485ea2
AM
37extern bfd_boolean do_ar_emul_append (bfd **, bfd *,
38 bfd_boolean, bfd_boolean,
39 bfd_boolean (*)(bfd *));
492d5973
L
40extern bfd_boolean ar_emul_replace (bfd **, char *, const char *,
41 bfd_boolean);
f3016d6c
HC
42extern bfd_boolean ar_emul_replace_bfd (bfd **, bfd *,
43 bfd_boolean);
44extern bfd_boolean ar_emul_default_replace (bfd **, bfd *,
45 bfd_boolean);
2da42df6
AJ
46extern bfd_boolean ar_emul_parse_arg (char *);
47extern bfd_boolean ar_emul_default_parse_arg (char *);
eb1e0e80
NC
48
49/* Macros for common output. */
50
51#define AR_EMUL_USAGE_PRINT_OPTION_HEADER(fp) \
52 /* xgettext:c-format */ \
53 fprintf (fp, _(" emulation options: \n"))
54
55#define AR_EMUL_ELEMENT_CHECK(abfd, file_name) \
ad94be02 56 do { if ((abfd) == NULL) bfd_fatal (file_name); } while (0)
eb1e0e80
NC
57
58#define AR_EMUL_APPEND_PRINT_VERBOSE(verbose, file_name) \
59 do { if (verbose) printf ("a - %s\n", file_name); } while (0)
60
61#define AR_EMUL_REPLACE_PRINT_VERBOSE(verbose, file_name) \
62 do { if (verbose) printf ("r - %s\n", file_name); } while (0)
63
f462a9ea 64typedef struct bin_emulation_xfer_struct
eb1e0e80
NC
65{
66 /* Print out the extra options. */
2da42df6 67 void (* ar_usage) (FILE *fp);
f3016d6c
HC
68 bfd_boolean (* ar_append) (bfd **, bfd *, bfd_boolean, bfd_boolean);
69 bfd_boolean (* ar_replace) (bfd **, bfd *, bfd_boolean);
2da42df6 70 bfd_boolean (* ar_parse_arg) (char *);
eb1e0e80
NC
71}
72bin_emulation_xfer_type;
73
f462a9ea 74#endif