Subversion Repositories Kolibri OS

Rev

Rev 5219 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5219 Rev 6324
1
/* Binutils emulation layer.
1
/* Binutils emulation layer.
2
   Copyright 2002, 2003, 2005, 2007, 2008 Free Software Foundation, Inc.
2
   Copyright (C) 2002-2015 Free Software Foundation, Inc.
3
   Written by Tom Rix, Red Hat Inc.
3
   Written by Tom Rix, Red Hat Inc.
4
 
4
 
5
   This file is part of GNU Binutils.
5
   This file is part of GNU Binutils.
6
 
6
 
7
   This program is free software; you can redistribute it and/or modify
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
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
9
   the Free Software Foundation; either version 3 of the License, or
10
   (at your option) any later version.
10
   (at your option) any later version.
11
 
11
 
12
   This program is distributed in the hope that it will be useful,
12
   This program is distributed in the hope that it will be useful,
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
   GNU General Public License for more details.
15
   GNU General Public License for more details.
16
 
16
 
17
   You should have received a copy of the GNU General Public License
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
18
   along with this program; if not, write to the Free Software
19
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
19
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20
   MA 02110-1301, USA.  */
20
   MA 02110-1301, USA.  */
21
 
21
 
22
#ifndef BINEMUL_H
22
#ifndef BINEMUL_H
23
#define BINEMUL_H
23
#define BINEMUL_H
24
 
24
 
25
#include "sysdep.h"
25
#include "sysdep.h"
26
#include "bfd.h"
26
#include "bfd.h"
27
#include "bucomm.h"
27
#include "bucomm.h"
28
 
28
 
29
extern void ar_emul_usage (FILE *);
29
extern void ar_emul_usage (FILE *);
30
extern void ar_emul_default_usage (FILE *);
30
extern void ar_emul_default_usage (FILE *);
31
extern bfd_boolean ar_emul_append (bfd **, char *, const char *,
31
extern bfd_boolean ar_emul_append (bfd **, char *, const char *,
32
				   bfd_boolean, bfd_boolean);
32
				   bfd_boolean, bfd_boolean);
33
extern bfd_boolean ar_emul_default_append (bfd **, char *, const char *,
33
extern bfd_boolean ar_emul_default_append (bfd **, char *, const char *,
34
					   bfd_boolean, bfd_boolean);
34
					   bfd_boolean, bfd_boolean);
35
extern bfd_boolean do_ar_emul_append (bfd **, bfd *,
35
extern bfd_boolean do_ar_emul_append (bfd **, bfd *,
36
				      bfd_boolean, bfd_boolean,
36
				      bfd_boolean, bfd_boolean,
37
				      bfd_boolean (*)(bfd *));
37
				      bfd_boolean (*)(bfd *));
38
extern bfd_boolean ar_emul_replace (bfd **, char *, const char *,
38
extern bfd_boolean ar_emul_replace (bfd **, char *, const char *,
39
				    bfd_boolean);
39
				    bfd_boolean);
40
extern bfd_boolean ar_emul_default_replace (bfd **, char *,
40
extern bfd_boolean ar_emul_default_replace (bfd **, char *,
41
					    const char *, bfd_boolean);
41
					    const char *, bfd_boolean);
42
extern bfd_boolean ar_emul_parse_arg (char *);
42
extern bfd_boolean ar_emul_parse_arg (char *);
43
extern bfd_boolean ar_emul_default_parse_arg (char *);
43
extern bfd_boolean ar_emul_default_parse_arg (char *);
44
 
44
 
45
/* Macros for common output.  */
45
/* Macros for common output.  */
46
 
46
 
47
#define AR_EMUL_USAGE_PRINT_OPTION_HEADER(fp) \
47
#define AR_EMUL_USAGE_PRINT_OPTION_HEADER(fp) \
48
  /* xgettext:c-format */                     \
48
  /* xgettext:c-format */                     \
49
  fprintf (fp, _(" emulation options: \n"))
49
  fprintf (fp, _(" emulation options: \n"))
50
 
50
 
51
#define AR_EMUL_ELEMENT_CHECK(abfd, file_name) \
51
#define AR_EMUL_ELEMENT_CHECK(abfd, file_name) \
52
  do { if ((abfd) == NULL) bfd_fatal (file_name); } while (0)
52
  do { if ((abfd) == NULL) bfd_fatal (file_name); } while (0)
53
 
53
 
54
#define AR_EMUL_APPEND_PRINT_VERBOSE(verbose, file_name) \
54
#define AR_EMUL_APPEND_PRINT_VERBOSE(verbose, file_name) \
55
  do { if (verbose) printf ("a - %s\n", file_name); } while (0)
55
  do { if (verbose) printf ("a - %s\n", file_name); } while (0)
56
 
56
 
57
#define AR_EMUL_REPLACE_PRINT_VERBOSE(verbose, file_name) \
57
#define AR_EMUL_REPLACE_PRINT_VERBOSE(verbose, file_name) \
58
  do { if (verbose) printf ("r - %s\n", file_name); } while (0)
58
  do { if (verbose) printf ("r - %s\n", file_name); } while (0)
59
 
59
 
60
typedef struct bin_emulation_xfer_struct
60
typedef struct bin_emulation_xfer_struct
61
{
61
{
62
  /* Print out the extra options.  */
62
  /* Print out the extra options.  */
63
  void (* ar_usage) (FILE *fp);
63
  void (* ar_usage) (FILE *fp);
64
  bfd_boolean (* ar_append) (bfd **, char *, const char *, bfd_boolean,
64
  bfd_boolean (* ar_append) (bfd **, char *, const char *, bfd_boolean,
65
			     bfd_boolean);
65
			     bfd_boolean);
66
  bfd_boolean (* ar_replace) (bfd **, char *, const char *, bfd_boolean);
66
  bfd_boolean (* ar_replace) (bfd **, char *, const char *, bfd_boolean);
67
  bfd_boolean (* ar_parse_arg) (char *);
67
  bfd_boolean (* ar_parse_arg) (char *);
68
}
68
}
69
bin_emulation_xfer_type;
69
bin_emulation_xfer_type;
70
 
70
 
71
#endif
71
#endif