PR 6844
[binutils-gdb.git] / bfd / libpei.h
index 5e272d01f641e67bebcf91ae9a87721501c0b703..8fcae7bea58215301a0f400bd36aa66ff764ea9c 100644 (file)
@@ -1,6 +1,6 @@
 /* Support for the generic parts of PE/PEI; common header information.
    Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005,
-   2006, 2007   Free Software Foundation, Inc.
+   2006, 2007, 2008   Free Software Foundation, Inc.
    Written by Cygnus Solutions.
 
    This file is part of BFD, the Binary File Descriptor library.
 #endif /* !COFF_WITH_pep */
 
 /* Returns true if the target is a PE executable target.  */
-#define bfd_target_pei_p(xvec)                         \
+#define bfd_target_pei_p(xvec)                                 \
   (CONST_STRNEQ ((xvec)->name, "pei-"))
 
 /* Return the arch string of a PE executable target.  */
 #define bfd_target_pei_arch(xvec)                              \
   ((xvec)->name + sizeof ("pei-") - 1)
 
-/* Returns true if the target is an EFI target.  */
-#define bfd_target_efi_p(xvec)                         \
+/* Returns true if the target is an EFI application target.  */
+#define bfd_target_efi_app_p(xvec)                             \
    (CONST_STRNEQ ((xvec)->name, "efi-app-"))
 
-/* Return the arch string of an EFI target.  */
-#define bfd_target_efi_arch(xvec)                              \
+/* Return the arch string of an EFI application target.  */
+#define bfd_target_efi_app_arch(xvec)                          \
   ((xvec)->name + sizeof ("efi-app-") - 1)
 
+/* Returns true if the target is an EFI Boot Service driver target.  */
+#define bfd_target_efi_bsdrv_p(xvec)                           \
+   (CONST_STRNEQ ((xvec)->name, "efi-bsdrv-"))
+
+/* Return the arch string of an EFI Boot Service driver target.  */
+#define bfd_target_efi_bsdrv_arch(xvec)                                \
+  ((xvec)->name + sizeof ("efi-bsdrv-") - 1)
+
+/* Returns true if the target is an EFI runtime driver target.  */
+#define bfd_target_efi_rtdrv_p(xvec)                           \
+   (CONST_STRNEQ ((xvec)->name, "efi-rtdrv-"))
+
+/* Return the arch string of an EFI runtime driver target.  */
+#define bfd_target_efi_rtdrv_arch(xvec)                                \
+  ((xvec)->name + sizeof ("efi-rtdrv-") - 1)
+
 /* Macro: Returns true if the bfd is a PE executable as opposed to a
    PE object file.  */
 #define bfd_pe_executable_p(abfd)                      \
-  (bfd_target_pei_p ((abfd)->xvec)                     \
-   || bfd_target_efi_p ((abfd)->xvec))
+  (   bfd_target_pei_p ((abfd)->xvec)                  \
+   || bfd_target_efi_app_p ((abfd)->xvec)              \
+   || bfd_target_efi_bsdrv_p ((abfd)->xvec)            \
+   || bfd_target_efi_rtdrv_p ((abfd)->xvec))
 
 /* These functions are architecture dependent, and are in peicode.h:
    coff_swap_reloc_in
@@ -371,3 +389,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 *);
+