diff options
| author | Peter Jones <pjones@redhat.com> | 2021-12-02 17:43:29 -0500 |
|---|---|---|
| committer | Peter Jones <pjones@redhat.com> | 2022-05-17 19:01:03 -0400 |
| commit | 465663e5f6b350abdb18f0ab51ec8924e739bc78 (patch) | |
| tree | a4fbbdd401c9a35bec92ea86b57c4a3f0958c166 /include | |
| parent | 8ce2832e3c9edebb4b9e2932f5f1dd79d8feec59 (diff) | |
| download | efi-boot-shim-465663e5f6b350abdb18f0ab51ec8924e739bc78.tar.gz efi-boot-shim-465663e5f6b350abdb18f0ab51ec8924e739bc78.zip | |
Add some missing PE image flag definitions
This patch adds some missing definitions for PE header flags. We don't
use all of them, but it's less confusing with the list matching the
spec, except where the spec is obviously wrong.
Signed-off-by: Peter Jones <pjones@redhat.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/peimage.h | 54 |
1 files changed, 47 insertions, 7 deletions
diff --git a/include/peimage.h b/include/peimage.h index 3b3f01a7..4bcb940d 100644 --- a/include/peimage.h +++ b/include/peimage.h @@ -236,6 +236,24 @@ typedef struct { EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES];
} EFI_IMAGE_OPTIONAL_HEADER64;
+#define EFI_IMAGE_DLLCHARACTERISTICS_RESERVED_0001 0x0001
+#define EFI_IMAGE_DLLCHARACTERISTICS_RESERVED_0002 0x0002
+#define EFI_IMAGE_DLLCHARACTERISTICS_RESERVED_0004 0x0004
+#define EFI_IMAGE_DLLCHARACTERISTICS_RESERVED_0008 0x0008
+#if 0 /* This is not in the PE spec. */
+#define EFI_IMAGE_DLLCHARACTERISTICS_RESERVED_0010 0x0010
+#endif
+#define EFI_IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA 0x0020
+#define EFI_IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040
+#define EFI_IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 0x0080
+#define EFI_IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100
+#define EFI_IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200
+#define EFI_IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400
+#define EFI_IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800
+#define EFI_IMAGE_DLLCHARACTERISTICS_APPCONTAINER 0x1000
+#define EFI_IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000
+#define EFI_IMAGE_DLLCHARACTERISTICS_GUARD_CF 0x4000
+#define EFI_IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
///
/// @attention
@@ -303,16 +321,31 @@ typedef struct { //
// Section Flags Values
//
-#define EFI_IMAGE_SCN_TYPE_NO_PAD 0x00000008 ///< Reserved.
+#define EFI_IMAGE_SCN_RESERVED_00000000 0x00000000
+#define EFI_IMAGE_SCN_RESERVED_00000001 0x00000001
+#define EFI_IMAGE_SCN_RESERVED_00000002 0x00000002
+#define EFI_IMAGE_SCN_RESERVED_00000004 0x00000004
+#define EFI_IMAGE_SCN_TYPE_NO_PAD 0x00000008
+#define EFI_IMAGE_SCN_RESERVED_00000010 0x00000010
#define EFI_IMAGE_SCN_CNT_CODE 0x00000020
#define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040
#define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080
-
-#define EFI_IMAGE_SCN_LNK_OTHER 0x00000100 ///< Reserved.
-#define EFI_IMAGE_SCN_LNK_INFO 0x00000200 ///< Section contains comments or some other type of information.
-#define EFI_IMAGE_SCN_LNK_REMOVE 0x00000800 ///< Section contents will not become part of image.
+#define EFI_IMAGE_SCN_LNK_OTHER 0x00000100
+#define EFI_IMAGE_SCN_LNK_INFO 0x00000200
+#define EFI_IMAGE_SCN_RESERVED_00000400 0x00000400
+#define EFI_IMAGE_SCN_LNK_REMOVE 0x00000800
#define EFI_IMAGE_SCN_LNK_COMDAT 0x00001000
-
+#define EFI_IMAGE_SCN_RESERVED_00002000 0x00002000
+#define EFI_IMAGE_SCN_RESERVED_00004000 0x00004000
+#define EFI_IMAGE_SCN_GPREL 0x00008000
+/*
+ * PE 9.3 says both IMAGE_SCN_MEM_PURGEABLE and IMAGE_SCN_MEM_16BIT are
+ * 0x00020000, but I think it's wrong. --pjones
+ */
+#define EFI_IMAGE_SCN_MEM_PURGEABLE 0x00010000 // "Reserved for future use."
+#define EFI_IMAGE_SCN_MEM_16BIT 0x00020000 // "Reserved for future use."
+#define EFI_IMAGE_SCN_MEM_LOCKED 0x00040000 // "Reserved for future use."
+#define EFI_IMAGE_SCN_MEM_PRELOAD 0x00080000 // "Reserved for future use."
#define EFI_IMAGE_SCN_ALIGN_1BYTES 0x00100000
#define EFI_IMAGE_SCN_ALIGN_2BYTES 0x00200000
#define EFI_IMAGE_SCN_ALIGN_4BYTES 0x00300000
@@ -320,7 +353,14 @@ typedef struct { #define EFI_IMAGE_SCN_ALIGN_16BYTES 0x00500000
#define EFI_IMAGE_SCN_ALIGN_32BYTES 0x00600000
#define EFI_IMAGE_SCN_ALIGN_64BYTES 0x00700000
-
+#define EFI_IMAGE_SCN_ALIGN_128BYTES 0x00800000
+#define EFI_IMAGE_SCN_ALIGN_256BYTES 0x00900000
+#define EFI_IMAGE_SCN_ALIGN_512BYTES 0x00a00000
+#define EFI_IMAGE_SCN_ALIGN_1024BYTES 0x00b00000
+#define EFI_IMAGE_SCN_ALIGN_2048BYTES 0x00c00000
+#define EFI_IMAGE_SCN_ALIGN_4096BYTES 0x00d00000
+#define EFI_IMAGE_SCN_ALIGN_8192BYTES 0x00e00000
+#define EFI_IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000
#define EFI_IMAGE_SCN_MEM_DISCARDABLE 0x02000000
#define EFI_IMAGE_SCN_MEM_NOT_CACHED 0x04000000
#define EFI_IMAGE_SCN_MEM_NOT_PAGED 0x08000000
|
