]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - bfd/libpei.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / bfd / libpei.h
index 6b232b48a7190d39584c9784dc91e161519717fa..43e27284ebbba1989f073ce16d9c85b7654311f9 100644 (file)
@@ -1,31 +1,30 @@
 /* Support for the generic parts of PE/PEI; common header information.
-   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001
-   Free Software Foundation, Inc.
+   Copyright (C) 1995-2021 Free Software Foundation, Inc.
    Written by Cygnus Solutions.
 
-This file is part of BFD, the Binary File Descriptor library.
+   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
-(at your option) any later version.
+   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 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.
+   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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.  */
 
-/*
-Most of this hacked by  Steve Chamberlain,
+
+/* Most of this hacked by  Steve Chamberlain,
                        sac@cygnus.com
 
-PE/PEI rearrangement (and code added): Donn Terry
-                                      Softway Systems, Inc.
-*/
+   PE/PEI rearrangement (and code added): Donn Terry
+                                      Softway Systems, Inc.  */
 
 /* Hey look, some documentation [and in a place you expect to find it]!
 
@@ -53,8 +52,7 @@ PE/PEI rearrangement (and code added): Donn Terry
 
    FIXME: Please add more docs here so the next poor fool that has to hack
    on this code has a chance of getting something accomplished without
-   wasting too much time.
-*/
+   wasting too much time.  */
 
 #ifndef GET_FCN_LNNOPTR
 #define GET_FCN_LNNOPTR(abfd, ext) \
@@ -207,7 +205,42 @@ PE/PEI rearrangement (and code added): Donn Terry
 #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
@@ -227,7 +260,6 @@ PE/PEI rearrangement (and code added): Donn Terry
 #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
@@ -238,6 +270,10 @@ PE/PEI rearrangement (and code added): Donn Terry
 #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 */
 
@@ -259,7 +295,6 @@ PE/PEI rearrangement (and code added): Donn Terry
 #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
@@ -270,6 +305,10 @@ PE/PEI rearrangement (and code added): Donn Terry
 #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 */
 
@@ -285,51 +324,48 @@ PE/PEI rearrangement (and code added): Donn Terry
    implementations architecture types, and actually appear in
    peigen.c.  */
 
-void _bfd_XXi_swap_sym_in PARAMS ((bfd*, PTR, PTR));
-#define coff_swap_sym_in _bfd_XXi_swap_sym_in
-
-unsigned int _bfd_XXi_swap_sym_out PARAMS ((bfd*, PTR, PTR));
-#define coff_swap_sym_out _bfd_XXi_swap_sym_out
-
-void _bfd_XXi_swap_aux_in PARAMS ((bfd *, PTR, int, int, int, int, PTR));
-#define coff_swap_aux_in _bfd_XXi_swap_aux_in
-
-unsigned int _bfd_XXi_swap_aux_out \
-  PARAMS ((bfd *, PTR, int, int, int, int, PTR));
-#define coff_swap_aux_out _bfd_XXi_swap_aux_out
-
-void _bfd_XXi_swap_lineno_in PARAMS ((bfd*, PTR, PTR));
-#define coff_swap_lineno_in _bfd_XXi_swap_lineno_in
-
-unsigned int _bfd_XXi_swap_lineno_out PARAMS ((bfd*, PTR, PTR));
-#define coff_swap_lineno_out _bfd_XXi_swap_lineno_out
-
-void _bfd_XXi_swap_aouthdr_in PARAMS ((bfd*, PTR, PTR));
-#define coff_swap_aouthdr_in _bfd_XXi_swap_aouthdr_in
-
-unsigned int _bfd_XXi_swap_aouthdr_out PARAMS ((bfd *, PTR, PTR));
+#define coff_swap_sym_in      _bfd_XXi_swap_sym_in
+#define coff_swap_sym_out     _bfd_XXi_swap_sym_out
+#define coff_swap_aux_in      _bfd_XXi_swap_aux_in
+#define coff_swap_aux_out     _bfd_XXi_swap_aux_out
+#define coff_swap_lineno_in   _bfd_XXi_swap_lineno_in
+#define coff_swap_lineno_out  _bfd_XXi_swap_lineno_out
+#define coff_swap_aouthdr_in  _bfd_XXi_swap_aouthdr_in
 #define coff_swap_aouthdr_out _bfd_XXi_swap_aouthdr_out
-
-unsigned int _bfd_XXi_swap_scnhdr_out PARAMS ((bfd *, PTR, PTR));
-#define coff_swap_scnhdr_out _bfd_XXi_swap_scnhdr_out
-
-boolean _bfd_XX_print_private_bfd_data_common PARAMS ((bfd *, PTR));
-
-boolean _bfd_XX_bfd_copy_private_bfd_data_common PARAMS ((bfd *, bfd *));
-
-void _bfd_XX_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *));
-
-boolean _bfd_XXi_final_link_postscript
-  PARAMS ((bfd *, struct coff_final_link_info *));
+#define coff_swap_scnhdr_out  _bfd_XXi_swap_scnhdr_out
 
 #ifndef coff_final_link_postscript
 #define coff_final_link_postscript _bfd_XXi_final_link_postscript
 #endif
+
+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 *);
+unsigned    _bfd_XXi_swap_aux_out (bfd *, void *, int, int, int, int, 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 *);
+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 *);
+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
    prototype.  */
 
-unsigned int _bfd_XX_only_swap_filehdr_out PARAMS ((bfd*, PTR, PTR));
-unsigned int _bfd_XXi_only_swap_filehdr_out PARAMS ((bfd*, PTR, PTR));
-boolean _bfd_XX_bfd_copy_private_section_data
-  PARAMS ((bfd *, asection *, bfd *, asection *));
+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 *);
+