Tweak handling of remote errors in response to resumption packet
[deliverable/binutils-gdb.git] / bfd / libpei.h
index b01e222ede9986110ef66c4698bf8f928eb11eeb..87d404d378d09bcfc82061b675286be7b67d6bc2 100644 (file)
@@ -1,23 +1,24 @@
 /* Support for the generic parts of PE/PEI; common header information.
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006
-   Free Software Foundation, Inc.
+   Copyright (C) 1995-2020 Free Software Foundation, Inc.
    Written by Cygnus Solutions.
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
 
 /* Most of this hacked by  Steve Chamberlain,
                        sac@cygnus.com
 #define PUT_SCNHDR_LNNOPTR H_PUT_32
 #endif
 
-#ifdef COFF_WITH_pep
+#ifdef COFF_WITH_pex64
+
+#define GET_OPTHDR_IMAGE_BASE           H_GET_64
+#define PUT_OPTHDR_IMAGE_BASE           H_PUT_64
+#define GET_OPTHDR_SIZE_OF_STACK_RESERVE H_GET_64
+#define PUT_OPTHDR_SIZE_OF_STACK_RESERVE H_PUT_64
+#define GET_OPTHDR_SIZE_OF_STACK_COMMIT         H_GET_64
+#define PUT_OPTHDR_SIZE_OF_STACK_COMMIT         H_PUT_64
+#define GET_OPTHDR_SIZE_OF_HEAP_RESERVE         H_GET_64
+#define PUT_OPTHDR_SIZE_OF_HEAP_RESERVE         H_PUT_64
+#define GET_OPTHDR_SIZE_OF_HEAP_COMMIT  H_GET_64
+#define PUT_OPTHDR_SIZE_OF_HEAP_COMMIT  H_PUT_64
+#define GET_PDATA_ENTRY                         bfd_get_32
+
+#define _bfd_XX_bfd_copy_private_bfd_data_common       _bfd_pex64_bfd_copy_private_bfd_data_common
+#define _bfd_XX_bfd_copy_private_section_data          _bfd_pex64_bfd_copy_private_section_data
+#define _bfd_XX_get_symbol_info                                _bfd_pex64_get_symbol_info
+#define _bfd_XX_only_swap_filehdr_out                  _bfd_pex64_only_swap_filehdr_out
+#define _bfd_XX_print_private_bfd_data_common          _bfd_pex64_print_private_bfd_data_common
+#define _bfd_XXi_final_link_postscript                 _bfd_pex64i_final_link_postscript
+#define _bfd_XXi_only_swap_filehdr_out                 _bfd_pex64i_only_swap_filehdr_out
+#define _bfd_XXi_swap_aouthdr_in                       _bfd_pex64i_swap_aouthdr_in
+#define _bfd_XXi_swap_aouthdr_out                      _bfd_pex64i_swap_aouthdr_out
+#define _bfd_XXi_swap_aux_in                           _bfd_pex64i_swap_aux_in
+#define _bfd_XXi_swap_aux_out                          _bfd_pex64i_swap_aux_out
+#define _bfd_XXi_swap_lineno_in                                _bfd_pex64i_swap_lineno_in
+#define _bfd_XXi_swap_lineno_out                       _bfd_pex64i_swap_lineno_out
+#define _bfd_XXi_swap_scnhdr_out                       _bfd_pex64i_swap_scnhdr_out
+#define _bfd_XXi_swap_sym_in                           _bfd_pex64i_swap_sym_in
+#define _bfd_XXi_swap_sym_out                          _bfd_pex64i_swap_sym_out
+#define _bfd_XXi_swap_debugdir_in                      _bfd_pex64i_swap_debugdir_in
+#define _bfd_XXi_swap_debugdir_out                     _bfd_pex64i_swap_debugdir_out
+#define _bfd_XXi_write_codeview_record                 _bfd_pex64i_write_codeview_record
+#define _bfd_XXi_slurp_codeview_record                 _bfd_pex64i_slurp_codeview_record
+
+#elif defined COFF_WITH_pep
 
 #define GET_OPTHDR_IMAGE_BASE H_GET_64
 #define PUT_OPTHDR_IMAGE_BASE H_PUT_64
 #define _bfd_XX_only_swap_filehdr_out                  _bfd_pep_only_swap_filehdr_out
 #define _bfd_XX_print_private_bfd_data_common          _bfd_pep_print_private_bfd_data_common
 #define _bfd_XXi_final_link_postscript                 _bfd_pepi_final_link_postscript
-#define _bfd_XXi_final_link_postscript                 _bfd_pepi_final_link_postscript
 #define _bfd_XXi_only_swap_filehdr_out                 _bfd_pepi_only_swap_filehdr_out
 #define _bfd_XXi_swap_aouthdr_in                       _bfd_pepi_swap_aouthdr_in
 #define _bfd_XXi_swap_aouthdr_out                      _bfd_pepi_swap_aouthdr_out
 #define _bfd_XXi_swap_scnhdr_out                       _bfd_pepi_swap_scnhdr_out
 #define _bfd_XXi_swap_sym_in                           _bfd_pepi_swap_sym_in
 #define _bfd_XXi_swap_sym_out                          _bfd_pepi_swap_sym_out
+#define _bfd_XXi_swap_debugdir_in                      _bfd_pepi_swap_debugdir_in
+#define _bfd_XXi_swap_debugdir_out                     _bfd_pepi_swap_debugdir_out
+#define _bfd_XXi_write_codeview_record                 _bfd_pepi_write_codeview_record
+#define _bfd_XXi_slurp_codeview_record                 _bfd_pepi_slurp_codeview_record
 
 #else /* !COFF_WITH_pep */
 
 #define _bfd_XX_only_swap_filehdr_out                  _bfd_pe_only_swap_filehdr_out
 #define _bfd_XX_print_private_bfd_data_common          _bfd_pe_print_private_bfd_data_common
 #define _bfd_XXi_final_link_postscript                 _bfd_pei_final_link_postscript
-#define _bfd_XXi_final_link_postscript                 _bfd_pei_final_link_postscript
 #define _bfd_XXi_only_swap_filehdr_out                 _bfd_pei_only_swap_filehdr_out
 #define _bfd_XXi_swap_aouthdr_in                       _bfd_pei_swap_aouthdr_in
 #define _bfd_XXi_swap_aouthdr_out                      _bfd_pei_swap_aouthdr_out
 #define _bfd_XXi_swap_scnhdr_out                       _bfd_pei_swap_scnhdr_out
 #define _bfd_XXi_swap_sym_in                           _bfd_pei_swap_sym_in
 #define _bfd_XXi_swap_sym_out                          _bfd_pei_swap_sym_out
+#define _bfd_XXi_swap_debugdir_in                      _bfd_pei_swap_debugdir_in
+#define _bfd_XXi_swap_debugdir_out                     _bfd_pei_swap_debugdir_out
+#define _bfd_XXi_write_codeview_record                 _bfd_pei_write_codeview_record
+#define _bfd_XXi_slurp_codeview_record                 _bfd_pei_slurp_codeview_record
 
 #endif /* !COFF_WITH_pep */
 
-/* Macro: Returns true if the bfd is a PE executable as opposed to a PE object file.  */
-#define bfd_pe_executable_p(abfd)                      \
-  (CONST_STRNEQ ((abfd)->xvec->name, "pei-")           \
-   || CONST_STRNEQ ((abfd)->xvec->name, "efi-app-"))
-
 /* These functions are architecture dependent, and are in peicode.h:
    coff_swap_reloc_in
    int coff_swap_reloc_out
 #define coff_final_link_postscript _bfd_XXi_final_link_postscript
 #endif
 
-void        _bfd_XXi_swap_sym_in (bfd *, void *, void *);
+void       _bfd_XXi_swap_sym_in (bfd *, void *, void *);
 unsigned    _bfd_XXi_swap_sym_out (bfd *, void *, void *);
-void        _bfd_XXi_swap_aux_in (bfd *, void *, int, int, int, int, void *);
+void       _bfd_XXi_swap_aux_in (bfd *, void *, int, int, int, int, void *);
 unsigned    _bfd_XXi_swap_aux_out (bfd *, void *, int, int, int, int, void *);
-void        _bfd_XXi_swap_lineno_in (bfd *, void *, void *);
+void       _bfd_XXi_swap_lineno_in (bfd *, void *, void *);
 unsigned    _bfd_XXi_swap_lineno_out (bfd *, void *, void *);
-void        _bfd_XXi_swap_aouthdr_in (bfd *, void *, void *);
+void       _bfd_XXi_swap_aouthdr_in (bfd *, void *, void *);
 unsigned    _bfd_XXi_swap_aouthdr_out (bfd *, void *, void *);
 unsigned    _bfd_XXi_swap_scnhdr_out (bfd *, void *, void *);
 bfd_boolean _bfd_XX_print_private_bfd_data_common (bfd *, void *);
 bfd_boolean _bfd_XX_bfd_copy_private_bfd_data_common (bfd *, bfd *);
-void        _bfd_XX_get_symbol_info (bfd *, asymbol *, symbol_info *);
+void       _bfd_XX_get_symbol_info (bfd *, asymbol *, symbol_info *);
 bfd_boolean _bfd_XXi_final_link_postscript (bfd *, struct coff_final_link_info *);
+void       _bfd_XXi_swap_debugdir_in (bfd *, void *, void *);
+unsigned    _bfd_XXi_swap_debugdir_out (bfd *, void *, void *);
+unsigned    _bfd_XXi_write_codeview_record (bfd *, file_ptr, CODEVIEW_INFO *);
+CODEVIEW_INFO * _bfd_XXi_slurp_codeview_record (bfd * abfd, file_ptr where, unsigned long length, CODEVIEW_INFO *cvinfo);
 
 /* The following are needed only for ONE of pe or pei, but don't
    otherwise vary; peicode.h fixes up ifdefs but we provide the
@@ -323,3 +364,8 @@ unsigned    _bfd_XX_only_swap_filehdr_out  (bfd *, void *, void *);
 unsigned    _bfd_XXi_only_swap_filehdr_out (bfd *, void *, void *);
 bfd_boolean _bfd_XX_bfd_copy_private_section_data (bfd *, asection *, bfd *, asection *);
 
+bfd_boolean _bfd_pe_print_ce_compressed_pdata (bfd *, void *);
+bfd_boolean _bfd_pe64_print_ce_compressed_pdata (bfd *, void *);
+bfd_boolean _bfd_pex64_print_ce_compressed_pdata (bfd *, void *);
+bfd_boolean _bfd_pep_print_ce_compressed_pdata (bfd *, void *);
+
This page took 0.039843 seconds and 4 git commands to generate.