Rev 5219 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5219 | serge | 1 | /* Binutils emulation layer. |
6324 | serge | 2 | Copyright (C) 2002-2015 Free Software Foundation, Inc. |
5219 | serge | 3 | Written by Tom Rix, Red Hat Inc. |
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 |
||
9 | the Free Software Foundation; either version 3 of the License, or |
||
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 |
||
19 | Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, |
||
20 | MA 02110-1301, USA. */ |
||
21 | |||
22 | #ifndef BINEMUL_H |
||
23 | #define BINEMUL_H |
||
24 | |||
25 | #include "sysdep.h" |
||
26 | #include "bfd.h" |
||
27 | #include "bucomm.h" |
||
28 | |||
29 | extern void ar_emul_usage (FILE *); |
||
30 | extern void ar_emul_default_usage (FILE *); |
||
31 | extern bfd_boolean ar_emul_append (bfd **, char *, const char *, |
||
32 | bfd_boolean, bfd_boolean); |
||
33 | extern bfd_boolean ar_emul_default_append (bfd **, char *, const char *, |
||
34 | bfd_boolean, bfd_boolean); |
||
35 | extern bfd_boolean do_ar_emul_append (bfd **, bfd *, |
||
36 | bfd_boolean, bfd_boolean, |
||
37 | bfd_boolean (*)(bfd *)); |
||
38 | extern bfd_boolean ar_emul_replace (bfd **, char *, const char *, |
||
39 | bfd_boolean); |
||
40 | extern bfd_boolean ar_emul_default_replace (bfd **, char *, |
||
41 | const char *, bfd_boolean); |
||
42 | extern bfd_boolean ar_emul_parse_arg (char *); |
||
43 | extern bfd_boolean ar_emul_default_parse_arg (char *); |
||
44 | |||
45 | /* Macros for common output. */ |
||
46 | |||
47 | #define AR_EMUL_USAGE_PRINT_OPTION_HEADER(fp) \ |
||
48 | /* xgettext:c-format */ \ |
||
49 | fprintf (fp, _(" emulation options: \n")) |
||
50 | |||
51 | #define AR_EMUL_ELEMENT_CHECK(abfd, file_name) \ |
||
52 | do { if ((abfd) == NULL) bfd_fatal (file_name); } while (0) |
||
53 | |||
54 | #define AR_EMUL_APPEND_PRINT_VERBOSE(verbose, file_name) \ |
||
55 | do { if (verbose) printf ("a - %s\n", file_name); } while (0) |
||
56 | |||
57 | #define AR_EMUL_REPLACE_PRINT_VERBOSE(verbose, file_name) \ |
||
58 | do { if (verbose) printf ("r - %s\n", file_name); } while (0) |
||
59 | |||
60 | typedef struct bin_emulation_xfer_struct |
||
61 | { |
||
62 | /* Print out the extra options. */ |
||
63 | void (* ar_usage) (FILE *fp); |
||
64 | bfd_boolean (* ar_append) (bfd **, char *, const char *, bfd_boolean, |
||
65 | bfd_boolean); |
||
66 | bfd_boolean (* ar_replace) (bfd **, char *, const char *, bfd_boolean); |
||
67 | bfd_boolean (* ar_parse_arg) (char *); |
||
68 | } |
||
69 | bin_emulation_xfer_type; |
||
70 | |||
71 | #endif |