Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* Binutils emulation layer.
  2.    Copyright 2002, 2003, 2005, 2007, 2008 Free Software Foundation, Inc.
  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
  72.