MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PeImage.h File Reference

Data Structures

struct  EFI_IMAGE_DOS_HEADER
 
struct  EFI_IMAGE_FILE_HEADER
 
struct  EFI_IMAGE_DATA_DIRECTORY
 
struct  EFI_IMAGE_OPTIONAL_HEADER32
 
struct  EFI_IMAGE_OPTIONAL_HEADER64
 
struct  EFI_IMAGE_NT_HEADERS32
 
struct  EFI_IMAGE_NT_HEADERS64
 
struct  EFI_IMAGE_SECTION_HEADER
 
struct  EFI_IMAGE_RELOCATION
 
struct  EFI_IMAGE_BASE_RELOCATION
 
struct  EFI_IMAGE_LINENUMBER
 
struct  EFI_IMAGE_ARCHIVE_MEMBER_HEADER
 
struct  EFI_IMAGE_EXPORT_DIRECTORY
 
struct  EFI_IMAGE_IMPORT_BY_NAME
 
struct  EFI_IMAGE_THUNK_DATA
 
struct  EFI_IMAGE_IMPORT_DESCRIPTOR
 
struct  EFI_IMAGE_DEBUG_DIRECTORY_ENTRY
 
struct  EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY
 
struct  EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY
 
struct  EFI_IMAGE_DEBUG_CODEVIEW_MTOC_ENTRY
 
struct  EFI_IMAGE_RESOURCE_DIRECTORY
 
struct  EFI_IMAGE_RESOURCE_DIRECTORY_ENTRY
 
struct  EFI_IMAGE_RESOURCE_DIRECTORY_STRING
 
struct  EFI_IMAGE_RESOURCE_DATA_ENTRY
 
struct  EFI_TE_IMAGE_HEADER
 
union  EFI_IMAGE_OPTIONAL_HEADER_UNION
 
union  EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION
 

Macros

#define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION   10
 
#define EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER   11
 
#define EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER   12
 
#define EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER   13
 defined PI Specification, 1.0 More...
 
#define IMAGE_FILE_MACHINE_I386   0x014c
 
#define IMAGE_FILE_MACHINE_IA64   0x0200
 
#define IMAGE_FILE_MACHINE_EBC   0x0EBC
 
#define IMAGE_FILE_MACHINE_X64   0x8664
 
#define IMAGE_FILE_MACHINE_ARMTHUMB_MIXED   0x01c2
 
#define IMAGE_FILE_MACHINE_ARM64   0xAA64
 
#define IMAGE_FILE_MACHINE_RISCV32   0x5032
 
#define IMAGE_FILE_MACHINE_RISCV64   0x5064
 
#define IMAGE_FILE_MACHINE_RISCV128   0x5128
 
#define EFI_IMAGE_DOS_SIGNATURE   SIGNATURE_16('M', 'Z')
 
#define EFI_IMAGE_OS2_SIGNATURE   SIGNATURE_16('N', 'E')
 
#define EFI_IMAGE_OS2_SIGNATURE_LE   SIGNATURE_16('L', 'E')
 
#define EFI_IMAGE_NT_SIGNATURE   SIGNATURE_32('P', 'E', '\0', '\0')
 
#define EFI_IMAGE_SIZEOF_FILE_HEADER   20
 
#define EFI_IMAGE_FILE_RELOCS_STRIPPED   BIT0
 0x0001 Relocation info stripped from file. More...
 
#define EFI_IMAGE_FILE_EXECUTABLE_IMAGE   BIT1
 0x0002 File is executable (i.e. no unresolved externel references). More...
 
#define EFI_IMAGE_FILE_LINE_NUMS_STRIPPED   BIT2
 0x0004 Line numbers stripped from file. More...
 
#define EFI_IMAGE_FILE_LOCAL_SYMS_STRIPPED   BIT3
 0x0008 Local symbols stripped from file. More...
 
#define EFI_IMAGE_FILE_BYTES_REVERSED_LO   BIT7
 0x0080 Bytes of machine word are reversed. More...
 
#define EFI_IMAGE_FILE_32BIT_MACHINE   BIT8
 0x0100 32 bit word machine. More...
 
#define EFI_IMAGE_FILE_DEBUG_STRIPPED   BIT9
 0x0200 Debugging info stripped from file in .DBG file. More...
 
#define EFI_IMAGE_FILE_SYSTEM   BIT12
 0x1000 System File. More...
 
#define EFI_IMAGE_FILE_DLL   BIT13
 0x2000 File is a DLL. More...
 
#define EFI_IMAGE_FILE_BYTES_REVERSED_HI   BIT15
 0x8000 Bytes of machine word are reversed. More...
 
#define EFI_IMAGE_DIRECTORY_ENTRY_EXPORT   0
 
#define EFI_IMAGE_DIRECTORY_ENTRY_IMPORT   1
 
#define EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE   2
 
#define EFI_IMAGE_DIRECTORY_ENTRY_EXCEPTION   3
 
#define EFI_IMAGE_DIRECTORY_ENTRY_SECURITY   4
 
#define EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC   5
 
#define EFI_IMAGE_DIRECTORY_ENTRY_DEBUG   6
 
#define EFI_IMAGE_DIRECTORY_ENTRY_COPYRIGHT   7
 
#define EFI_IMAGE_DIRECTORY_ENTRY_GLOBALPTR   8
 
#define EFI_IMAGE_DIRECTORY_ENTRY_TLS   9
 
#define EFI_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG   10
 
#define EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES   16
 
#define EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC   0x10b
 
#define EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC   0x20b
 
#define EFI_IMAGE_SIZEOF_NT_OPTIONAL32_HEADER   sizeof (EFI_IMAGE_NT_HEADERS32)
 
#define EFI_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER   sizeof (EFI_IMAGE_NT_HEADERS64)
 
#define EFI_IMAGE_SUBSYSTEM_UNKNOWN   0
 
#define EFI_IMAGE_SUBSYSTEM_NATIVE   1
 
#define EFI_IMAGE_SUBSYSTEM_WINDOWS_GUI   2
 
#define EFI_IMAGE_SUBSYSTEM_WINDOWS_CUI   3
 
#define EFI_IMAGE_SUBSYSTEM_OS2_CUI   5
 
#define EFI_IMAGE_SUBSYSTEM_POSIX_CUI   7
 
#define EFI_IMAGE_SIZEOF_SHORT_NAME   8
 
#define EFI_IMAGE_SIZEOF_SECTION_HEADER   40
 
#define EFI_IMAGE_SCN_TYPE_NO_PAD   BIT3
 0x00000008 ///< Reserved. More...
 
#define EFI_IMAGE_SCN_CNT_CODE   BIT5
 0x00000020 More...
 
#define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA   BIT6
 0x00000040 More...
 
#define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA   BIT7
 0x00000080 More...
 
#define EFI_IMAGE_SCN_LNK_OTHER   BIT8
 0x00000100 ///< Reserved. More...
 
#define EFI_IMAGE_SCN_LNK_INFO   BIT9
 0x00000200 ///< Section contains comments or some other type of information. More...
 
#define EFI_IMAGE_SCN_LNK_REMOVE   BIT11
 0x00000800 ///< Section contents will not become part of image. More...
 
#define EFI_IMAGE_SCN_LNK_COMDAT   BIT12
 0x00001000 More...
 
#define EFI_IMAGE_SCN_ALIGN_1BYTES   BIT20
 0x00100000 More...
 
#define EFI_IMAGE_SCN_ALIGN_2BYTES   BIT21
 0x00200000 More...
 
#define EFI_IMAGE_SCN_ALIGN_4BYTES   (BIT20|BIT21)
 0x00300000 More...
 
#define EFI_IMAGE_SCN_ALIGN_8BYTES   BIT22
 0x00400000 More...
 
#define EFI_IMAGE_SCN_ALIGN_16BYTES   (BIT20|BIT22)
 0x00500000 More...
 
#define EFI_IMAGE_SCN_ALIGN_32BYTES   (BIT21|BIT22)
 0x00600000 More...
 
#define EFI_IMAGE_SCN_ALIGN_64BYTES   (BIT20|BIT21|BIT22)
 0x00700000 More...
 
#define EFI_IMAGE_SCN_MEM_DISCARDABLE   BIT25
 0x02000000 More...
 
#define EFI_IMAGE_SCN_MEM_NOT_CACHED   BIT26
 0x04000000 More...
 
#define EFI_IMAGE_SCN_MEM_NOT_PAGED   BIT27
 0x08000000 More...
 
#define EFI_IMAGE_SCN_MEM_SHARED   BIT28
 0x10000000 More...
 
#define EFI_IMAGE_SCN_MEM_EXECUTE   BIT29
 0x20000000 More...
 
#define EFI_IMAGE_SCN_MEM_READ   BIT30
 0x40000000 More...
 
#define EFI_IMAGE_SCN_MEM_WRITE   BIT31
 0x80000000 More...
 
#define EFI_IMAGE_SIZEOF_SYMBOL   18
 
#define EFI_IMAGE_SYM_UNDEFINED   (UINT16) 0
 Symbol is undefined or is common. More...
 
#define EFI_IMAGE_SYM_ABSOLUTE   (UINT16) -1
 Symbol is an absolute value. More...
 
#define EFI_IMAGE_SYM_DEBUG   (UINT16) -2
 Symbol is a special debug item. More...
 
#define EFI_IMAGE_SYM_TYPE_NULL   0
 no type. More...
 
#define EFI_IMAGE_SYM_TYPE_VOID   1
 no valid type. More...
 
#define EFI_IMAGE_SYM_TYPE_CHAR   2
 type character. More...
 
#define EFI_IMAGE_SYM_TYPE_SHORT   3
 type short integer. More...
 
#define EFI_IMAGE_SYM_TYPE_INT   4
 
#define EFI_IMAGE_SYM_TYPE_LONG   5
 
#define EFI_IMAGE_SYM_TYPE_FLOAT   6
 
#define EFI_IMAGE_SYM_TYPE_DOUBLE   7
 
#define EFI_IMAGE_SYM_TYPE_STRUCT   8
 
#define EFI_IMAGE_SYM_TYPE_UNION   9
 
#define EFI_IMAGE_SYM_TYPE_ENUM   10
 enumeration. More...
 
#define EFI_IMAGE_SYM_TYPE_MOE   11
 member of enumeration. More...
 
#define EFI_IMAGE_SYM_TYPE_BYTE   12
 
#define EFI_IMAGE_SYM_TYPE_WORD   13
 
#define EFI_IMAGE_SYM_TYPE_UINT   14
 
#define EFI_IMAGE_SYM_TYPE_DWORD   15
 
#define EFI_IMAGE_SYM_DTYPE_NULL   0
 no derived type. More...
 
#define EFI_IMAGE_SYM_DTYPE_POINTER   1
 
#define EFI_IMAGE_SYM_DTYPE_FUNCTION   2
 
#define EFI_IMAGE_SYM_DTYPE_ARRAY   3
 
#define EFI_IMAGE_SYM_CLASS_END_OF_FUNCTION   ((UINT8) -1)
 
#define EFI_IMAGE_SYM_CLASS_NULL   0
 
#define EFI_IMAGE_SYM_CLASS_AUTOMATIC   1
 
#define EFI_IMAGE_SYM_CLASS_EXTERNAL   2
 
#define EFI_IMAGE_SYM_CLASS_STATIC   3
 
#define EFI_IMAGE_SYM_CLASS_REGISTER   4
 
#define EFI_IMAGE_SYM_CLASS_EXTERNAL_DEF   5
 
#define EFI_IMAGE_SYM_CLASS_LABEL   6
 
#define EFI_IMAGE_SYM_CLASS_UNDEFINED_LABEL   7
 
#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_STRUCT   8
 
#define EFI_IMAGE_SYM_CLASS_ARGUMENT   9
 
#define EFI_IMAGE_SYM_CLASS_STRUCT_TAG   10
 
#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_UNION   11
 
#define EFI_IMAGE_SYM_CLASS_UNION_TAG   12
 
#define EFI_IMAGE_SYM_CLASS_TYPE_DEFINITION   13
 
#define EFI_IMAGE_SYM_CLASS_UNDEFINED_STATIC   14
 
#define EFI_IMAGE_SYM_CLASS_ENUM_TAG   15
 
#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_ENUM   16
 
#define EFI_IMAGE_SYM_CLASS_REGISTER_PARAM   17
 
#define EFI_IMAGE_SYM_CLASS_BIT_FIELD   18
 
#define EFI_IMAGE_SYM_CLASS_BLOCK   100
 
#define EFI_IMAGE_SYM_CLASS_FUNCTION   101
 
#define EFI_IMAGE_SYM_CLASS_END_OF_STRUCT   102
 
#define EFI_IMAGE_SYM_CLASS_FILE   103
 
#define EFI_IMAGE_SYM_CLASS_SECTION   104
 
#define EFI_IMAGE_SYM_CLASS_WEAK_EXTERNAL   105
 
#define EFI_IMAGE_N_BTMASK   017
 
#define EFI_IMAGE_N_TMASK   060
 
#define EFI_IMAGE_N_TMASK1   0300
 
#define EFI_IMAGE_N_TMASK2   0360
 
#define EFI_IMAGE_N_BTSHFT   4
 
#define EFI_IMAGE_N_TSHIFT   2
 
#define EFI_IMAGE_COMDAT_SELECT_NODUPLICATES   1
 
#define EFI_IMAGE_COMDAT_SELECT_ANY   2
 
#define EFI_IMAGE_COMDAT_SELECT_SAME_SIZE   3
 
#define EFI_IMAGE_COMDAT_SELECT_EXACT_MATCH   4
 
#define EFI_IMAGE_COMDAT_SELECT_ASSOCIATIVE   5
 
#define EFI_IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY   1
 
#define EFI_IMAGE_WEAK_EXTERN_SEARCH_LIBRARY   2
 
#define EFI_IMAGE_WEAK_EXTERN_SEARCH_ALIAS   3
 
#define EFI_IMAGE_SIZEOF_RELOCATION   10
 
#define EFI_IMAGE_REL_I386_ABSOLUTE   0x0000
 Reference is absolute, no relocation is necessary. More...
 
#define EFI_IMAGE_REL_I386_DIR16   0x0001
 Direct 16-bit reference to the symbols virtual address. More...
 
#define EFI_IMAGE_REL_I386_REL16   0x0002
 PC-relative 16-bit reference to the symbols virtual address. More...
 
#define EFI_IMAGE_REL_I386_DIR32   0x0006
 Direct 32-bit reference to the symbols virtual address. More...
 
#define EFI_IMAGE_REL_I386_DIR32NB   0x0007
 Direct 32-bit reference to the symbols virtual address, base not included. More...
 
#define EFI_IMAGE_REL_I386_SEG12   0x0009
 Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address. More...
 
#define EFI_IMAGE_REL_I386_SECTION   0x000A
 
#define EFI_IMAGE_REL_I386_SECREL   0x000B
 
#define EFI_IMAGE_REL_I386_REL32   0x0014
 PC-relative 32-bit reference to the symbols virtual address. More...
 
#define IMAGE_REL_AMD64_ABSOLUTE   0x0000
 
#define IMAGE_REL_AMD64_ADDR64   0x0001
 
#define IMAGE_REL_AMD64_ADDR32   0x0002
 
#define IMAGE_REL_AMD64_ADDR32NB   0x0003
 
#define IMAGE_REL_AMD64_REL32   0x0004
 
#define IMAGE_REL_AMD64_REL32_1   0x0005
 
#define IMAGE_REL_AMD64_REL32_2   0x0006
 
#define IMAGE_REL_AMD64_REL32_3   0x0007
 
#define IMAGE_REL_AMD64_REL32_4   0x0008
 
#define IMAGE_REL_AMD64_REL32_5   0x0009
 
#define IMAGE_REL_AMD64_SECTION   0x000A
 
#define IMAGE_REL_AMD64_SECREL   0x000B
 
#define IMAGE_REL_AMD64_SECREL7   0x000C
 
#define IMAGE_REL_AMD64_TOKEN   0x000D
 
#define IMAGE_REL_AMD64_SREL32   0x000E
 
#define IMAGE_REL_AMD64_PAIR   0x000F
 
#define IMAGE_REL_AMD64_SSPAN32   0x0010
 
#define EFI_IMAGE_SIZEOF_BASE_RELOCATION   8
 
#define EFI_IMAGE_REL_BASED_ABSOLUTE   0
 
#define EFI_IMAGE_REL_BASED_HIGH   1
 
#define EFI_IMAGE_REL_BASED_LOW   2
 
#define EFI_IMAGE_REL_BASED_HIGHLOW   3
 
#define EFI_IMAGE_REL_BASED_HIGHADJ   4
 
#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR   5
 
#define EFI_IMAGE_REL_BASED_ARM_MOV32A   5
 
#define EFI_IMAGE_REL_BASED_ARM_MOV32T   7
 
#define EFI_IMAGE_REL_BASED_IA64_IMM64   9
 
#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR16   9
 
#define EFI_IMAGE_REL_BASED_DIR64   10
 
#define EFI_IMAGE_REL_BASED_RISCV_HI20   5
 
#define EFI_IMAGE_REL_BASED_RISCV_LOW12I   7
 
#define EFI_IMAGE_REL_BASED_RISCV_LOW12S   8
 
#define EFI_IMAGE_SIZEOF_LINENUMBER   6
 
#define EFI_IMAGE_ARCHIVE_START_SIZE   8
 
#define EFI_IMAGE_ARCHIVE_START   "!<arch>\n"
 
#define EFI_IMAGE_ARCHIVE_END   "`\n"
 
#define EFI_IMAGE_ARCHIVE_PAD   "\n"
 
#define EFI_IMAGE_ARCHIVE_LINKER_MEMBER   "/ "
 
#define EFI_IMAGE_ARCHIVE_LONGNAMES_MEMBER   "// "
 
#define EFI_IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR   60
 
#define EFI_IMAGE_ORDINAL_FLAG   BIT31
 Flag for PE32. More...
 
#define EFI_IMAGE_SNAP_BY_ORDINAL(Ordinal)   ((Ordinal & EFI_IMAGE_ORDINAL_FLAG) != 0)
 
#define EFI_IMAGE_ORDINAL(Ordinal)   (Ordinal & 0xffff)
 
#define EFI_IMAGE_DEBUG_TYPE_CODEVIEW   2
 The Visual C++ debug information. More...
 
#define CODEVIEW_SIGNATURE_NB10   SIGNATURE_32('N', 'B', '1', '0')
 
#define CODEVIEW_SIGNATURE_RSDS   SIGNATURE_32('R', 'S', 'D', 'S')
 
#define CODEVIEW_SIGNATURE_MTOC   SIGNATURE_32('M', 'T', 'O', 'C')
 
#define EFI_TE_IMAGE_HEADER_SIGNATURE   SIGNATURE_16('V', 'Z')
 
#define EFI_TE_IMAGE_DIRECTORY_ENTRY_BASERELOC   0
 
#define EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG   1
 

Detailed Description

EFI image format for PE32, PE32+ and TE. Please note some data structures are different for PE32 and PE32+. EFI_IMAGE_NT_HEADERS32 is for PE32 and EFI_IMAGE_NT_HEADERS64 is for PE32+.

This file is coded to the Visual Studio, Microsoft Portable Executable and Common Object File Format Specification, Revision 8.3 - February 6, 2013. This file also includes some definitions in PI Specification, Revision 1.0.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
Portions Copyright (c) 2016 - 2020, Hewlett Packard Enterprise Development LP. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define CODEVIEW_SIGNATURE_MTOC   SIGNATURE_32('M', 'T', 'O', 'C')

Debug Data Structure defined by Apple Mach-O to Coff utility.

#define CODEVIEW_SIGNATURE_NB10   SIGNATURE_32('N', 'B', '1', '0')

Debug Data Structure defined in Microsoft C++.

#define CODEVIEW_SIGNATURE_RSDS   SIGNATURE_32('R', 'S', 'D', 'S')

Debug Data Structure defined in Microsoft C++.

#define EFI_IMAGE_ARCHIVE_END   "`\n"
#define EFI_IMAGE_ARCHIVE_LINKER_MEMBER   "/ "
#define EFI_IMAGE_ARCHIVE_LONGNAMES_MEMBER   "// "
#define EFI_IMAGE_ARCHIVE_PAD   "\n"
#define EFI_IMAGE_ARCHIVE_START   "!<arch>\n"
#define EFI_IMAGE_ARCHIVE_START_SIZE   8
#define EFI_IMAGE_COMDAT_SELECT_ANY   2
#define EFI_IMAGE_COMDAT_SELECT_ASSOCIATIVE   5
#define EFI_IMAGE_COMDAT_SELECT_EXACT_MATCH   4
#define EFI_IMAGE_COMDAT_SELECT_NODUPLICATES   1
#define EFI_IMAGE_COMDAT_SELECT_SAME_SIZE   3
#define EFI_IMAGE_DEBUG_TYPE_CODEVIEW   2

The Visual C++ debug information.

#define EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC   5
#define EFI_IMAGE_DIRECTORY_ENTRY_COPYRIGHT   7
#define EFI_IMAGE_DIRECTORY_ENTRY_DEBUG   6
#define EFI_IMAGE_DIRECTORY_ENTRY_EXCEPTION   3
#define EFI_IMAGE_DIRECTORY_ENTRY_EXPORT   0
#define EFI_IMAGE_DIRECTORY_ENTRY_GLOBALPTR   8
#define EFI_IMAGE_DIRECTORY_ENTRY_IMPORT   1
#define EFI_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG   10
#define EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE   2
#define EFI_IMAGE_DIRECTORY_ENTRY_SECURITY   4
#define EFI_IMAGE_DIRECTORY_ENTRY_TLS   9
#define EFI_IMAGE_DOS_SIGNATURE   SIGNATURE_16('M', 'Z')
#define EFI_IMAGE_FILE_32BIT_MACHINE   BIT8

0x0100 32 bit word machine.

#define EFI_IMAGE_FILE_BYTES_REVERSED_HI   BIT15

0x8000 Bytes of machine word are reversed.

#define EFI_IMAGE_FILE_BYTES_REVERSED_LO   BIT7

0x0080 Bytes of machine word are reversed.

#define EFI_IMAGE_FILE_DEBUG_STRIPPED   BIT9

0x0200 Debugging info stripped from file in .DBG file.

#define EFI_IMAGE_FILE_DLL   BIT13

0x2000 File is a DLL.

#define EFI_IMAGE_FILE_EXECUTABLE_IMAGE   BIT1

0x0002 File is executable (i.e. no unresolved externel references).

#define EFI_IMAGE_FILE_LINE_NUMS_STRIPPED   BIT2

0x0004 Line numbers stripped from file.

#define EFI_IMAGE_FILE_LOCAL_SYMS_STRIPPED   BIT3

0x0008 Local symbols stripped from file.

#define EFI_IMAGE_FILE_RELOCS_STRIPPED   BIT0

0x0001 Relocation info stripped from file.

#define EFI_IMAGE_FILE_SYSTEM   BIT12

0x1000 System File.

#define EFI_IMAGE_N_BTMASK   017
#define EFI_IMAGE_N_BTSHFT   4
#define EFI_IMAGE_N_TMASK   060
#define EFI_IMAGE_N_TMASK1   0300
#define EFI_IMAGE_N_TMASK2   0360
#define EFI_IMAGE_N_TSHIFT   2
#define EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC   0x10b
Attention
EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC means PE32 and EFI_IMAGE_OPTIONAL_HEADER32 must be used. The data structures only vary after NT additional fields.
#define EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC   0x20b
Attention
EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC means PE32+ and EFI_IMAGE_OPTIONAL_HEADER64 must be used. The data structures only vary after NT additional fields.
#define EFI_IMAGE_NT_SIGNATURE   SIGNATURE_32('P', 'E', '\0', '\0')
#define EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES   16
#define EFI_IMAGE_ORDINAL (   Ordinal)    (Ordinal & 0xffff)
#define EFI_IMAGE_ORDINAL_FLAG   BIT31

Flag for PE32.

#define EFI_IMAGE_OS2_SIGNATURE   SIGNATURE_16('N', 'E')
#define EFI_IMAGE_OS2_SIGNATURE_LE   SIGNATURE_16('L', 'E')
#define EFI_IMAGE_REL_BASED_ABSOLUTE   0
#define EFI_IMAGE_REL_BASED_ARM_MOV32A   5
#define EFI_IMAGE_REL_BASED_ARM_MOV32T   7
#define EFI_IMAGE_REL_BASED_DIR64   10
#define EFI_IMAGE_REL_BASED_HIGH   1
#define EFI_IMAGE_REL_BASED_HIGHADJ   4
#define EFI_IMAGE_REL_BASED_HIGHLOW   3
#define EFI_IMAGE_REL_BASED_IA64_IMM64   9
#define EFI_IMAGE_REL_BASED_LOW   2
#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR   5
#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR16   9
#define EFI_IMAGE_REL_BASED_RISCV_HI20   5

Relocation types of RISC-V processor.

#define EFI_IMAGE_REL_BASED_RISCV_LOW12I   7
#define EFI_IMAGE_REL_BASED_RISCV_LOW12S   8
#define EFI_IMAGE_REL_I386_ABSOLUTE   0x0000

Reference is absolute, no relocation is necessary.

#define EFI_IMAGE_REL_I386_DIR16   0x0001

Direct 16-bit reference to the symbols virtual address.

#define EFI_IMAGE_REL_I386_DIR32   0x0006

Direct 32-bit reference to the symbols virtual address.

#define EFI_IMAGE_REL_I386_DIR32NB   0x0007

Direct 32-bit reference to the symbols virtual address, base not included.

#define EFI_IMAGE_REL_I386_REL16   0x0002

PC-relative 16-bit reference to the symbols virtual address.

#define EFI_IMAGE_REL_I386_REL32   0x0014

PC-relative 32-bit reference to the symbols virtual address.

#define EFI_IMAGE_REL_I386_SECREL   0x000B
#define EFI_IMAGE_REL_I386_SECTION   0x000A
#define EFI_IMAGE_REL_I386_SEG12   0x0009

Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address.

#define EFI_IMAGE_SCN_ALIGN_16BYTES   (BIT20|BIT22)

0x00500000

#define EFI_IMAGE_SCN_ALIGN_1BYTES   BIT20

0x00100000

#define EFI_IMAGE_SCN_ALIGN_2BYTES   BIT21

0x00200000

#define EFI_IMAGE_SCN_ALIGN_32BYTES   (BIT21|BIT22)

0x00600000

#define EFI_IMAGE_SCN_ALIGN_4BYTES   (BIT20|BIT21)

0x00300000

#define EFI_IMAGE_SCN_ALIGN_64BYTES   (BIT20|BIT21|BIT22)

0x00700000

#define EFI_IMAGE_SCN_ALIGN_8BYTES   BIT22

0x00400000

#define EFI_IMAGE_SCN_CNT_CODE   BIT5

0x00000020

#define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA   BIT6

0x00000040

#define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA   BIT7

0x00000080

#define EFI_IMAGE_SCN_LNK_COMDAT   BIT12

0x00001000

#define EFI_IMAGE_SCN_LNK_INFO   BIT9

0x00000200 ///< Section contains comments or some other type of information.

#define EFI_IMAGE_SCN_LNK_OTHER   BIT8

0x00000100 ///< Reserved.

#define EFI_IMAGE_SCN_LNK_REMOVE   BIT11

0x00000800 ///< Section contents will not become part of image.

#define EFI_IMAGE_SCN_MEM_DISCARDABLE   BIT25

0x02000000

#define EFI_IMAGE_SCN_MEM_EXECUTE   BIT29

0x20000000

#define EFI_IMAGE_SCN_MEM_NOT_CACHED   BIT26

0x04000000

#define EFI_IMAGE_SCN_MEM_NOT_PAGED   BIT27

0x08000000

#define EFI_IMAGE_SCN_MEM_READ   BIT30

0x40000000

#define EFI_IMAGE_SCN_MEM_SHARED   BIT28

0x10000000

#define EFI_IMAGE_SCN_MEM_WRITE   BIT31

0x80000000

#define EFI_IMAGE_SCN_TYPE_NO_PAD   BIT3

0x00000008 ///< Reserved.

#define EFI_IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR   60
#define EFI_IMAGE_SIZEOF_BASE_RELOCATION   8
#define EFI_IMAGE_SIZEOF_FILE_HEADER   20
#define EFI_IMAGE_SIZEOF_LINENUMBER   6
#define EFI_IMAGE_SIZEOF_NT_OPTIONAL32_HEADER   sizeof (EFI_IMAGE_NT_HEADERS32)
#define EFI_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER   sizeof (EFI_IMAGE_NT_HEADERS64)
#define EFI_IMAGE_SIZEOF_RELOCATION   10
#define EFI_IMAGE_SIZEOF_SECTION_HEADER   40
#define EFI_IMAGE_SIZEOF_SHORT_NAME   8

Length of ShortName.

#define EFI_IMAGE_SIZEOF_SYMBOL   18

Size of a Symbol Table Record.

#define EFI_IMAGE_SNAP_BY_ORDINAL (   Ordinal)    ((Ordinal & EFI_IMAGE_ORDINAL_FLAG) != 0)
#define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION   10
#define EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER   11
#define EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER   12
#define EFI_IMAGE_SUBSYSTEM_NATIVE   1
#define EFI_IMAGE_SUBSYSTEM_OS2_CUI   5
#define EFI_IMAGE_SUBSYSTEM_POSIX_CUI   7
#define EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER   13

defined PI Specification, 1.0

#define EFI_IMAGE_SUBSYSTEM_UNKNOWN   0
#define EFI_IMAGE_SUBSYSTEM_WINDOWS_CUI   3
#define EFI_IMAGE_SUBSYSTEM_WINDOWS_GUI   2
#define EFI_IMAGE_SYM_ABSOLUTE   (UINT16) -1

Symbol is an absolute value.

#define EFI_IMAGE_SYM_CLASS_ARGUMENT   9
#define EFI_IMAGE_SYM_CLASS_AUTOMATIC   1
#define EFI_IMAGE_SYM_CLASS_BIT_FIELD   18
#define EFI_IMAGE_SYM_CLASS_BLOCK   100
#define EFI_IMAGE_SYM_CLASS_END_OF_FUNCTION   ((UINT8) -1)
#define EFI_IMAGE_SYM_CLASS_END_OF_STRUCT   102
#define EFI_IMAGE_SYM_CLASS_ENUM_TAG   15
#define EFI_IMAGE_SYM_CLASS_EXTERNAL   2
#define EFI_IMAGE_SYM_CLASS_EXTERNAL_DEF   5
#define EFI_IMAGE_SYM_CLASS_FILE   103
#define EFI_IMAGE_SYM_CLASS_FUNCTION   101
#define EFI_IMAGE_SYM_CLASS_LABEL   6
#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_ENUM   16
#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_STRUCT   8
#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_UNION   11
#define EFI_IMAGE_SYM_CLASS_NULL   0
#define EFI_IMAGE_SYM_CLASS_REGISTER   4
#define EFI_IMAGE_SYM_CLASS_REGISTER_PARAM   17
#define EFI_IMAGE_SYM_CLASS_SECTION   104
#define EFI_IMAGE_SYM_CLASS_STATIC   3
#define EFI_IMAGE_SYM_CLASS_STRUCT_TAG   10
#define EFI_IMAGE_SYM_CLASS_TYPE_DEFINITION   13
#define EFI_IMAGE_SYM_CLASS_UNDEFINED_LABEL   7
#define EFI_IMAGE_SYM_CLASS_UNDEFINED_STATIC   14
#define EFI_IMAGE_SYM_CLASS_UNION_TAG   12
#define EFI_IMAGE_SYM_CLASS_WEAK_EXTERNAL   105
#define EFI_IMAGE_SYM_DEBUG   (UINT16) -2

Symbol is a special debug item.

#define EFI_IMAGE_SYM_DTYPE_ARRAY   3
#define EFI_IMAGE_SYM_DTYPE_FUNCTION   2
#define EFI_IMAGE_SYM_DTYPE_NULL   0

no derived type.

#define EFI_IMAGE_SYM_DTYPE_POINTER   1
#define EFI_IMAGE_SYM_TYPE_BYTE   12
#define EFI_IMAGE_SYM_TYPE_CHAR   2

type character.

#define EFI_IMAGE_SYM_TYPE_DOUBLE   7
#define EFI_IMAGE_SYM_TYPE_DWORD   15
#define EFI_IMAGE_SYM_TYPE_ENUM   10

enumeration.

#define EFI_IMAGE_SYM_TYPE_FLOAT   6
#define EFI_IMAGE_SYM_TYPE_INT   4
#define EFI_IMAGE_SYM_TYPE_LONG   5
#define EFI_IMAGE_SYM_TYPE_MOE   11

member of enumeration.

#define EFI_IMAGE_SYM_TYPE_NULL   0

no type.

#define EFI_IMAGE_SYM_TYPE_SHORT   3

type short integer.

#define EFI_IMAGE_SYM_TYPE_STRUCT   8
#define EFI_IMAGE_SYM_TYPE_UINT   14
#define EFI_IMAGE_SYM_TYPE_UNION   9
#define EFI_IMAGE_SYM_TYPE_VOID   1

no valid type.

#define EFI_IMAGE_SYM_TYPE_WORD   13
#define EFI_IMAGE_SYM_UNDEFINED   (UINT16) 0

Symbol is undefined or is common.

#define EFI_IMAGE_WEAK_EXTERN_SEARCH_ALIAS   3
#define EFI_IMAGE_WEAK_EXTERN_SEARCH_LIBRARY   2
#define EFI_IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY   1
#define EFI_TE_IMAGE_DIRECTORY_ENTRY_BASERELOC   0
#define EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG   1
#define EFI_TE_IMAGE_HEADER_SIGNATURE   SIGNATURE_16('V', 'Z')
#define IMAGE_FILE_MACHINE_ARM64   0xAA64
#define IMAGE_FILE_MACHINE_ARMTHUMB_MIXED   0x01c2
#define IMAGE_FILE_MACHINE_EBC   0x0EBC
#define IMAGE_FILE_MACHINE_I386   0x014c
#define IMAGE_FILE_MACHINE_IA64   0x0200
#define IMAGE_FILE_MACHINE_RISCV128   0x5128
#define IMAGE_FILE_MACHINE_RISCV32   0x5032
#define IMAGE_FILE_MACHINE_RISCV64   0x5064
#define IMAGE_FILE_MACHINE_X64   0x8664
#define IMAGE_REL_AMD64_ABSOLUTE   0x0000
#define IMAGE_REL_AMD64_ADDR32   0x0002
#define IMAGE_REL_AMD64_ADDR32NB   0x0003
#define IMAGE_REL_AMD64_ADDR64   0x0001
#define IMAGE_REL_AMD64_PAIR   0x000F
#define IMAGE_REL_AMD64_REL32   0x0004
#define IMAGE_REL_AMD64_REL32_1   0x0005
#define IMAGE_REL_AMD64_REL32_2   0x0006
#define IMAGE_REL_AMD64_REL32_3   0x0007
#define IMAGE_REL_AMD64_REL32_4   0x0008
#define IMAGE_REL_AMD64_REL32_5   0x0009
#define IMAGE_REL_AMD64_SECREL   0x000B
#define IMAGE_REL_AMD64_SECREL7   0x000C
#define IMAGE_REL_AMD64_SECTION   0x000A
#define IMAGE_REL_AMD64_SREL32   0x000E
#define IMAGE_REL_AMD64_SSPAN32   0x0010
#define IMAGE_REL_AMD64_TOKEN   0x000D