LLVM 20.0.0git
Classes | Enumerations | Functions | Variables
llvm::COFF Namespace Reference

Classes

union  Auxiliary
 
struct  AuxiliarybfAndefSymbol
 
struct  AuxiliaryCLRToken
 
struct  AuxiliaryFunctionDefinition
 
struct  AuxiliarySectionDefinition
 
struct  AuxiliaryWeakExternal
 
struct  BigObjHeader
 
struct  DataDirectory
 
struct  DOSHeader
 The DOS compatible header at the front of all PEs. More...
 
struct  header
 
struct  ImportDirectoryTableEntry
 The Import Directory Table. More...
 
struct  ImportHeader
 
struct  ImportLookupTableEntry32
 The PE32 Import Lookup Table. More...
 
struct  PE32Header
 
struct  relocation
 
struct  section
 
struct  symbol
 

Enumerations

enum  {
  Header16Size = 20 , Header32Size = 56 , NameSize = 8 , Symbol16Size = 18 ,
  Symbol32Size = 20 , SectionSize = 40 , RelocationSize = 10
}
 
enum  MachineTypes : unsigned {
  MT_Invalid = 0xffff , IMAGE_FILE_MACHINE_UNKNOWN = 0x0 , IMAGE_FILE_MACHINE_AM33 = 0x1D3 , IMAGE_FILE_MACHINE_AMD64 = 0x8664 ,
  IMAGE_FILE_MACHINE_ARM = 0x1C0 , IMAGE_FILE_MACHINE_ARMNT = 0x1C4 , IMAGE_FILE_MACHINE_ARM64 = 0xAA64 , IMAGE_FILE_MACHINE_ARM64EC = 0xA641 ,
  IMAGE_FILE_MACHINE_ARM64X = 0xA64E , IMAGE_FILE_MACHINE_EBC = 0xEBC , IMAGE_FILE_MACHINE_I386 = 0x14C , IMAGE_FILE_MACHINE_IA64 = 0x200 ,
  IMAGE_FILE_MACHINE_M32R = 0x9041 , IMAGE_FILE_MACHINE_MIPS16 = 0x266 , IMAGE_FILE_MACHINE_MIPSFPU = 0x366 , IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466 ,
  IMAGE_FILE_MACHINE_POWERPC = 0x1F0 , IMAGE_FILE_MACHINE_POWERPCFP = 0x1F1 , IMAGE_FILE_MACHINE_R4000 = 0x166 , IMAGE_FILE_MACHINE_RISCV32 = 0x5032 ,
  IMAGE_FILE_MACHINE_RISCV64 = 0x5064 , IMAGE_FILE_MACHINE_RISCV128 = 0x5128 , IMAGE_FILE_MACHINE_SH3 = 0x1A2 , IMAGE_FILE_MACHINE_SH3DSP = 0x1A3 ,
  IMAGE_FILE_MACHINE_SH4 = 0x1A6 , IMAGE_FILE_MACHINE_SH5 = 0x1A8 , IMAGE_FILE_MACHINE_THUMB = 0x1C2 , IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x169
}
 
enum  Characteristics : unsigned {
  C_Invalid = 0 , IMAGE_FILE_RELOCS_STRIPPED = 0x0001 , IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002 , IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004 ,
  IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008 , IMAGE_FILE_AGGRESSIVE_WS_TRIM = 0x0010 , IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020 , IMAGE_FILE_BYTES_REVERSED_LO = 0x0080 ,
  IMAGE_FILE_32BIT_MACHINE = 0x0100 , IMAGE_FILE_DEBUG_STRIPPED = 0x0200 , IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400 , IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800 ,
  IMAGE_FILE_SYSTEM = 0x1000 , IMAGE_FILE_DLL = 0x2000 , IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000 , IMAGE_FILE_BYTES_REVERSED_HI = 0x8000
}
 
enum  ResourceTypeID : unsigned {
  RID_Cursor = 1 , RID_Bitmap = 2 , RID_Icon = 3 , RID_Menu = 4 ,
  RID_Dialog = 5 , RID_String = 6 , RID_FontDir = 7 , RID_Font = 8 ,
  RID_Accelerator = 9 , RID_RCData = 10 , RID_MessageTable = 11 , RID_Group_Cursor = 12 ,
  RID_Group_Icon = 14 , RID_Version = 16 , RID_DLGInclude = 17 , RID_PlugPlay = 19 ,
  RID_VXD = 20 , RID_AniCursor = 21 , RID_AniIcon = 22 , RID_HTML = 23 ,
  RID_Manifest = 24
}
 
enum  SymbolSectionNumber : int32_t { IMAGE_SYM_DEBUG = -2 , IMAGE_SYM_ABSOLUTE = -1 , IMAGE_SYM_UNDEFINED = 0 }
 
enum  SymbolStorageClass {
  SSC_Invalid = 0xff , IMAGE_SYM_CLASS_END_OF_FUNCTION = -1 , IMAGE_SYM_CLASS_NULL = 0 , IMAGE_SYM_CLASS_AUTOMATIC = 1 ,
  IMAGE_SYM_CLASS_EXTERNAL = 2 , IMAGE_SYM_CLASS_STATIC = 3 , IMAGE_SYM_CLASS_REGISTER = 4 , IMAGE_SYM_CLASS_EXTERNAL_DEF = 5 ,
  IMAGE_SYM_CLASS_LABEL = 6 , IMAGE_SYM_CLASS_UNDEFINED_LABEL = 7 , IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 8 , IMAGE_SYM_CLASS_ARGUMENT = 9 ,
  IMAGE_SYM_CLASS_STRUCT_TAG = 10 , IMAGE_SYM_CLASS_MEMBER_OF_UNION = 11 , IMAGE_SYM_CLASS_UNION_TAG = 12 , IMAGE_SYM_CLASS_TYPE_DEFINITION = 13 ,
  IMAGE_SYM_CLASS_UNDEFINED_STATIC = 14 , IMAGE_SYM_CLASS_ENUM_TAG = 15 , IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 16 , IMAGE_SYM_CLASS_REGISTER_PARAM = 17 ,
  IMAGE_SYM_CLASS_BIT_FIELD = 18 , IMAGE_SYM_CLASS_BLOCK = 100 , IMAGE_SYM_CLASS_FUNCTION = 101 , IMAGE_SYM_CLASS_END_OF_STRUCT = 102 ,
  IMAGE_SYM_CLASS_FILE = 103 , IMAGE_SYM_CLASS_SECTION = 104 , IMAGE_SYM_CLASS_WEAK_EXTERNAL = 105 , IMAGE_SYM_CLASS_CLR_TOKEN = 107
}
 Storage class tells where and what the symbol represents. More...
 
enum  SymbolBaseType : unsigned {
  IMAGE_SYM_TYPE_NULL = 0 , IMAGE_SYM_TYPE_VOID = 1 , IMAGE_SYM_TYPE_CHAR = 2 , IMAGE_SYM_TYPE_SHORT = 3 ,
  IMAGE_SYM_TYPE_INT = 4 , IMAGE_SYM_TYPE_LONG = 5 , IMAGE_SYM_TYPE_FLOAT = 6 , IMAGE_SYM_TYPE_DOUBLE = 7 ,
  IMAGE_SYM_TYPE_STRUCT = 8 , IMAGE_SYM_TYPE_UNION = 9 , IMAGE_SYM_TYPE_ENUM = 10 , IMAGE_SYM_TYPE_MOE = 11 ,
  IMAGE_SYM_TYPE_BYTE = 12 , IMAGE_SYM_TYPE_WORD = 13 , IMAGE_SYM_TYPE_UINT = 14 , IMAGE_SYM_TYPE_DWORD = 15
}
 
enum  SymbolComplexType : unsigned {
  IMAGE_SYM_DTYPE_NULL = 0 , IMAGE_SYM_DTYPE_POINTER = 1 , IMAGE_SYM_DTYPE_FUNCTION = 2 , IMAGE_SYM_DTYPE_ARRAY = 3 ,
  SCT_COMPLEX_TYPE_SHIFT = 4
}
 
enum  AuxSymbolType { IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1 }
 
enum  SectionCharacteristics : uint32_t {
  SC_Invalid = 0xffffffff , IMAGE_SCN_TYPE_NOLOAD = 0x00000002 , IMAGE_SCN_TYPE_NO_PAD = 0x00000008 , IMAGE_SCN_CNT_CODE = 0x00000020 ,
  IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 , IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 , IMAGE_SCN_LNK_OTHER = 0x00000100 , IMAGE_SCN_LNK_INFO = 0x00000200 ,
  IMAGE_SCN_LNK_REMOVE = 0x00000800 , IMAGE_SCN_LNK_COMDAT = 0x00001000 , IMAGE_SCN_GPREL = 0x00008000 , IMAGE_SCN_MEM_PURGEABLE = 0x00020000 ,
  IMAGE_SCN_MEM_16BIT = 0x00020000 , IMAGE_SCN_MEM_LOCKED = 0x00040000 , IMAGE_SCN_MEM_PRELOAD = 0x00080000 , IMAGE_SCN_ALIGN_1BYTES = 0x00100000 ,
  IMAGE_SCN_ALIGN_2BYTES = 0x00200000 , IMAGE_SCN_ALIGN_4BYTES = 0x00300000 , IMAGE_SCN_ALIGN_8BYTES = 0x00400000 , IMAGE_SCN_ALIGN_16BYTES = 0x00500000 ,
  IMAGE_SCN_ALIGN_32BYTES = 0x00600000 , IMAGE_SCN_ALIGN_64BYTES = 0x00700000 , IMAGE_SCN_ALIGN_128BYTES = 0x00800000 , IMAGE_SCN_ALIGN_256BYTES = 0x00900000 ,
  IMAGE_SCN_ALIGN_512BYTES = 0x00A00000 , IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000 , IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000 , IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000 ,
  IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000 , IMAGE_SCN_ALIGN_MASK = 0x00F00000 , IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000 , IMAGE_SCN_MEM_DISCARDABLE = 0x02000000 ,
  IMAGE_SCN_MEM_NOT_CACHED = 0x04000000 , IMAGE_SCN_MEM_NOT_PAGED = 0x08000000 , IMAGE_SCN_MEM_SHARED = 0x10000000 , IMAGE_SCN_MEM_EXECUTE = 0x20000000 ,
  IMAGE_SCN_MEM_READ = 0x40000000 , IMAGE_SCN_MEM_WRITE = 0x80000000
}
 
enum  RelocationTypeI386 : unsigned {
  IMAGE_REL_I386_ABSOLUTE = 0x0000 , IMAGE_REL_I386_DIR16 = 0x0001 , IMAGE_REL_I386_REL16 = 0x0002 , IMAGE_REL_I386_DIR32 = 0x0006 ,
  IMAGE_REL_I386_DIR32NB = 0x0007 , IMAGE_REL_I386_SEG12 = 0x0009 , IMAGE_REL_I386_SECTION = 0x000A , IMAGE_REL_I386_SECREL = 0x000B ,
  IMAGE_REL_I386_TOKEN = 0x000C , IMAGE_REL_I386_SECREL7 = 0x000D , IMAGE_REL_I386_REL32 = 0x0014
}
 
enum  RelocationTypeAMD64 : unsigned {
  IMAGE_REL_AMD64_ABSOLUTE = 0x0000 , IMAGE_REL_AMD64_ADDR64 = 0x0001 , IMAGE_REL_AMD64_ADDR32 = 0x0002 , IMAGE_REL_AMD64_ADDR32NB = 0x0003 ,
  IMAGE_REL_AMD64_REL32 = 0x0004 , IMAGE_REL_AMD64_REL32_1 = 0x0005 , IMAGE_REL_AMD64_REL32_2 = 0x0006 , IMAGE_REL_AMD64_REL32_3 = 0x0007 ,
  IMAGE_REL_AMD64_REL32_4 = 0x0008 , IMAGE_REL_AMD64_REL32_5 = 0x0009 , IMAGE_REL_AMD64_SECTION = 0x000A , IMAGE_REL_AMD64_SECREL = 0x000B ,
  IMAGE_REL_AMD64_SECREL7 = 0x000C , IMAGE_REL_AMD64_TOKEN = 0x000D , IMAGE_REL_AMD64_SREL32 = 0x000E , IMAGE_REL_AMD64_PAIR = 0x000F ,
  IMAGE_REL_AMD64_SSPAN32 = 0x0010
}
 
enum  RelocationTypesARM : unsigned {
  IMAGE_REL_ARM_ABSOLUTE = 0x0000 , IMAGE_REL_ARM_ADDR32 = 0x0001 , IMAGE_REL_ARM_ADDR32NB = 0x0002 , IMAGE_REL_ARM_BRANCH24 = 0x0003 ,
  IMAGE_REL_ARM_BRANCH11 = 0x0004 , IMAGE_REL_ARM_TOKEN = 0x0005 , IMAGE_REL_ARM_BLX24 = 0x0008 , IMAGE_REL_ARM_BLX11 = 0x0009 ,
  IMAGE_REL_ARM_REL32 = 0x000A , IMAGE_REL_ARM_SECTION = 0x000E , IMAGE_REL_ARM_SECREL = 0x000F , IMAGE_REL_ARM_MOV32A = 0x0010 ,
  IMAGE_REL_ARM_MOV32T = 0x0011 , IMAGE_REL_ARM_BRANCH20T = 0x0012 , IMAGE_REL_ARM_BRANCH24T = 0x0014 , IMAGE_REL_ARM_BLX23T = 0x0015 ,
  IMAGE_REL_ARM_PAIR = 0x0016
}
 
enum  RelocationTypesARM64 : unsigned {
  IMAGE_REL_ARM64_ABSOLUTE = 0x0000 , IMAGE_REL_ARM64_ADDR32 = 0x0001 , IMAGE_REL_ARM64_ADDR32NB = 0x0002 , IMAGE_REL_ARM64_BRANCH26 = 0x0003 ,
  IMAGE_REL_ARM64_PAGEBASE_REL21 = 0x0004 , IMAGE_REL_ARM64_REL21 = 0x0005 , IMAGE_REL_ARM64_PAGEOFFSET_12A = 0x0006 , IMAGE_REL_ARM64_PAGEOFFSET_12L = 0x0007 ,
  IMAGE_REL_ARM64_SECREL = 0x0008 , IMAGE_REL_ARM64_SECREL_LOW12A = 0x0009 , IMAGE_REL_ARM64_SECREL_HIGH12A = 0x000A , IMAGE_REL_ARM64_SECREL_LOW12L = 0x000B ,
  IMAGE_REL_ARM64_TOKEN = 0x000C , IMAGE_REL_ARM64_SECTION = 0x000D , IMAGE_REL_ARM64_ADDR64 = 0x000E , IMAGE_REL_ARM64_BRANCH19 = 0x000F ,
  IMAGE_REL_ARM64_BRANCH14 = 0x0010 , IMAGE_REL_ARM64_REL32 = 0x0011
}
 
enum  RelocationTypesMips : unsigned {
  IMAGE_REL_MIPS_ABSOLUTE = 0x0000 , IMAGE_REL_MIPS_REFHALF = 0x0001 , IMAGE_REL_MIPS_REFWORD = 0x0002 , IMAGE_REL_MIPS_JMPADDR = 0x0003 ,
  IMAGE_REL_MIPS_REFHI = 0x0004 , IMAGE_REL_MIPS_REFLO = 0x0005 , IMAGE_REL_MIPS_GPREL = 0x0006 , IMAGE_REL_MIPS_LITERAL = 0x0007 ,
  IMAGE_REL_MIPS_SECTION = 0x000A , IMAGE_REL_MIPS_SECREL = 0x000B , IMAGE_REL_MIPS_SECRELLO = 0x000C , IMAGE_REL_MIPS_SECRELHI = 0x000D ,
  IMAGE_REL_MIPS_JMPADDR16 = 0x0010 , IMAGE_REL_MIPS_REFWORDNB = 0x0022 , IMAGE_REL_MIPS_PAIR = 0x0025
}
 
enum  DynamicRelocationType : unsigned {
  IMAGE_DYNAMIC_RELOCATION_GUARD_RF_PROLOGUE = 1 , IMAGE_DYNAMIC_RELOCATION_GUARD_RF_EPILOGUE = 2 , IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER = 3 , IMAGE_DYNAMIC_RELOCATION_GUARD_INDIR_CONTROL_TRANSFER = 4 ,
  IMAGE_DYNAMIC_RELOCATION_GUARD_SWITCHTABLE_BRANCH = 5 , IMAGE_DYNAMIC_RELOCATION_ARM64X = 6
}
 
enum  Arm64XFixupType : uint8_t { IMAGE_DVRT_ARM64X_FIXUP_TYPE_ZEROFILL = 0 , IMAGE_DVRT_ARM64X_FIXUP_TYPE_VALUE = 1 , IMAGE_DVRT_ARM64X_FIXUP_TYPE_DELTA = 2 }
 
enum  COMDATType : uint8_t {
  IMAGE_COMDAT_SELECT_NODUPLICATES = 1 , IMAGE_COMDAT_SELECT_ANY , IMAGE_COMDAT_SELECT_SAME_SIZE , IMAGE_COMDAT_SELECT_EXACT_MATCH ,
  IMAGE_COMDAT_SELECT_ASSOCIATIVE , IMAGE_COMDAT_SELECT_LARGEST , IMAGE_COMDAT_SELECT_NEWEST
}
 
enum  WeakExternalCharacteristics : unsigned { IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 , IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 , IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 , IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY = 4 }
 
enum  DataDirectoryIndex : unsigned {
  EXPORT_TABLE = 0 , IMPORT_TABLE , RESOURCE_TABLE , EXCEPTION_TABLE ,
  CERTIFICATE_TABLE , BASE_RELOCATION_TABLE , DEBUG_DIRECTORY , ARCHITECTURE ,
  GLOBAL_PTR , TLS_TABLE , LOAD_CONFIG_TABLE , BOUND_IMPORT ,
  IAT , DELAY_IMPORT_DESCRIPTOR , CLR_RUNTIME_HEADER , NUM_DATA_DIRECTORIES
}
 
enum  WindowsSubsystem : unsigned {
  IMAGE_SUBSYSTEM_UNKNOWN = 0 , IMAGE_SUBSYSTEM_NATIVE = 1 , IMAGE_SUBSYSTEM_WINDOWS_GUI = 2 , IMAGE_SUBSYSTEM_WINDOWS_CUI = 3 ,
  IMAGE_SUBSYSTEM_OS2_CUI = 5 , IMAGE_SUBSYSTEM_POSIX_CUI = 7 , IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8 , IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9 ,
  IMAGE_SUBSYSTEM_EFI_APPLICATION = 10 , IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11 , IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12 , IMAGE_SUBSYSTEM_EFI_ROM = 13 ,
  IMAGE_SUBSYSTEM_XBOX = 14 , IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16
}
 
enum  DLLCharacteristics : unsigned {
  IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA = 0x0020 , IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040 , IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080 , IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100 ,
  IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION = 0x0200 , IMAGE_DLL_CHARACTERISTICS_NO_SEH = 0x0400 , IMAGE_DLL_CHARACTERISTICS_NO_BIND = 0x0800 , IMAGE_DLL_CHARACTERISTICS_APPCONTAINER = 0x1000 ,
  IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER = 0x2000 , IMAGE_DLL_CHARACTERISTICS_GUARD_CF = 0x4000 , IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000
}
 
enum  ExtendedDLLCharacteristics : unsigned { IMAGE_DLL_CHARACTERISTICS_EX_CET_COMPAT = 0x0001 }
 
enum  DebugType : unsigned {
  IMAGE_DEBUG_TYPE_UNKNOWN = 0 , IMAGE_DEBUG_TYPE_COFF = 1 , IMAGE_DEBUG_TYPE_CODEVIEW = 2 , IMAGE_DEBUG_TYPE_FPO = 3 ,
  IMAGE_DEBUG_TYPE_MISC = 4 , IMAGE_DEBUG_TYPE_EXCEPTION = 5 , IMAGE_DEBUG_TYPE_FIXUP = 6 , IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 ,
  IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 , IMAGE_DEBUG_TYPE_BORLAND = 9 , IMAGE_DEBUG_TYPE_RESERVED10 = 10 , IMAGE_DEBUG_TYPE_CLSID = 11 ,
  IMAGE_DEBUG_TYPE_VC_FEATURE = 12 , IMAGE_DEBUG_TYPE_POGO = 13 , IMAGE_DEBUG_TYPE_ILTCG = 14 , IMAGE_DEBUG_TYPE_MPX = 15 ,
  IMAGE_DEBUG_TYPE_REPRO = 16 , IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS = 20
}
 
enum  BaseRelocationType : unsigned {
  IMAGE_REL_BASED_ABSOLUTE = 0 , IMAGE_REL_BASED_HIGH = 1 , IMAGE_REL_BASED_LOW = 2 , IMAGE_REL_BASED_HIGHLOW = 3 ,
  IMAGE_REL_BASED_HIGHADJ = 4 , IMAGE_REL_BASED_MIPS_JMPADDR = 5 , IMAGE_REL_BASED_ARM_MOV32A = 5 , IMAGE_REL_BASED_ARM_MOV32T = 7 ,
  IMAGE_REL_BASED_MIPS_JMPADDR16 = 9 , IMAGE_REL_BASED_DIR64 = 10
}
 
enum  ImportType : unsigned { IMPORT_CODE = 0 , IMPORT_DATA = 1 , IMPORT_CONST = 2 }
 
enum  ImportNameType : unsigned {
  IMPORT_ORDINAL = 0 , IMPORT_NAME = 1 , IMPORT_NAME_NOPREFIX = 2 , IMPORT_NAME_UNDECORATE = 3 ,
  IMPORT_NAME_EXPORTAS = 4
}
 
enum class  GuardFlags : uint32_t {
  CF_INSTRUMENTED = 0x100 , CFW_INSTRUMENTED = 0x200 , CF_FUNCTION_TABLE_PRESENT = 0x400 , SECURITY_COOKIE_UNUSED = 0x800 ,
  PROTECT_DELAYLOAD_IAT = 0x1000 , DELAYLOAD_IAT_IN_ITS_OWN_SECTION = 0x2000 , CF_EXPORT_SUPPRESSION_INFO_PRESENT = 0x4000 , CF_ENABLE_EXPORT_SUPPRESSION = 0x8000 ,
  CF_LONGJUMP_TABLE_PRESENT = 0x10000 , EH_CONTINUATION_TABLE_PRESENT = 0x400000 , CF_FUNCTION_TABLE_SIZE_MASK = 0xF0000000 , CF_FUNCTION_TABLE_SIZE_5BYTES = 0x10000000 ,
  CF_FUNCTION_TABLE_SIZE_6BYTES = 0x20000000 , CF_FUNCTION_TABLE_SIZE_7BYTES = 0x30000000 , CF_FUNCTION_TABLE_SIZE_8BYTES = 0x40000000 , CF_FUNCTION_TABLE_SIZE_9BYTES = 0x50000000 ,
  CF_FUNCTION_TABLE_SIZE_10BYTES = 0x60000000 , CF_FUNCTION_TABLE_SIZE_11BYTES = 0x70000000 , CF_FUNCTION_TABLE_SIZE_12BYTES = 0x80000000 , CF_FUNCTION_TABLE_SIZE_13BYTES = 0x90000000 ,
  CF_FUNCTION_TABLE_SIZE_14BYTES = 0xA0000000 , CF_FUNCTION_TABLE_SIZE_15BYTES = 0xB0000000 , CF_FUNCTION_TABLE_SIZE_16BYTES = 0xC0000000 , CF_FUNCTION_TABLE_SIZE_17BYTES = 0xD0000000 ,
  CF_FUNCTION_TABLE_SIZE_18BYTES = 0xE0000000 , CF_FUNCTION_TABLE_SIZE_19BYTES = 0xF0000000
}
 
enum  CodeViewIdentifiers { DEBUG_SECTION_MAGIC = 0x4 , DEBUG_HASHES_SECTION_MAGIC = 0x133C9C5 }
 
enum  Feat00Flags : uint32_t {
  SafeSEH = 0x1 , GuardStack = 0x100 , SDL = 0x200 , GuardCF = 0x800 ,
  GuardEHCont = 0x4000 , Kernel = 0x40000000
}
 
enum  Arm64ECThunkType : uint8_t { GuestExit = 0 , Entry = 1 , Exit = 4 }
 

Functions

template<typename T >
bool isArm64EC (T Machine)
 
template<typename T >
bool isAnyArm64 (T Machine)
 
template<typename T >
bool is64Bit (T Machine)
 
bool isReservedSectionNumber (int32_t SectionNumber)
 
bool encodeSectionName (char *Out, uint64_t Offset)
 Encode section name based on string table offset.
 
Characteristics operator| (Characteristics a, Characteristics b)
 
SectionCharacteristics operator| (SectionCharacteristics a, SectionCharacteristics b)
 
DLLCharacteristics operator| (DLLCharacteristics a, DLLCharacteristics b)
 

Variables

const int32_t MaxNumberOfSections16 = 65279
 
static const char PEMagic [] = {'P', 'E', '\0', '\0'}
 
static const char BigObjMagic []
 
static const char ClGlObjMagic []
 
static const char WinResMagic []
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
Header16Size 
Header32Size 
NameSize 
Symbol16Size 
Symbol32Size 
SectionSize 
RelocationSize 

Definition at line 54 of file COFF.h.

◆ Arm64ECThunkType

Enumerator
GuestExit 
Entry 
Exit 

Definition at line 842 of file COFF.h.

◆ Arm64XFixupType

Enumerator
IMAGE_DVRT_ARM64X_FIXUP_TYPE_ZEROFILL 
IMAGE_DVRT_ARM64X_FIXUP_TYPE_VALUE 
IMAGE_DVRT_ARM64X_FIXUP_TYPE_DELTA 

Definition at line 447 of file COFF.h.

◆ AuxSymbolType

Enumerator
IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF 

Definition at line 282 of file COFF.h.

◆ BaseRelocationType

Enumerator
IMAGE_REL_BASED_ABSOLUTE 
IMAGE_REL_BASED_HIGH 
IMAGE_REL_BASED_LOW 
IMAGE_REL_BASED_HIGHLOW 
IMAGE_REL_BASED_HIGHADJ 
IMAGE_REL_BASED_MIPS_JMPADDR 
IMAGE_REL_BASED_ARM_MOV32A 
IMAGE_REL_BASED_ARM_MOV32T 
IMAGE_REL_BASED_MIPS_JMPADDR16 
IMAGE_REL_BASED_DIR64 

Definition at line 720 of file COFF.h.

◆ Characteristics

Enumerator
C_Invalid 
IMAGE_FILE_RELOCS_STRIPPED 

The file does not contain base relocations and must be loaded at its preferred base.

If this cannot be done, the loader will error.

IMAGE_FILE_EXECUTABLE_IMAGE 

The file is valid and can be run.

IMAGE_FILE_LINE_NUMS_STRIPPED 

COFF line numbers have been stripped.

This is deprecated and should be 0.

IMAGE_FILE_LOCAL_SYMS_STRIPPED 

COFF symbol table entries for local symbols have been removed.

This is deprecated and should be 0.

IMAGE_FILE_AGGRESSIVE_WS_TRIM 

Aggressively trim working set. This is deprecated and must be 0.

IMAGE_FILE_LARGE_ADDRESS_AWARE 

Image can handle > 2GiB addresses.

IMAGE_FILE_BYTES_REVERSED_LO 

Little endian: the LSB precedes the MSB in memory.

This is deprecated and should be 0.

IMAGE_FILE_32BIT_MACHINE 

Machine is based on a 32bit word architecture.

IMAGE_FILE_DEBUG_STRIPPED 

Debugging info has been removed.

IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 

If the image is on removable media, fully load it and copy it to swap.

IMAGE_FILE_NET_RUN_FROM_SWAP 

If the image is on network media, fully load it and copy it to swap.

IMAGE_FILE_SYSTEM 

The image file is a system file, not a user program.

IMAGE_FILE_DLL 

The image file is a DLL.

IMAGE_FILE_UP_SYSTEM_ONLY 

This file should only be run on a uniprocessor machine.

IMAGE_FILE_BYTES_REVERSED_HI 

Big endian: the MSB precedes the LSB in memory.

This is deprecated and should be 0.

Definition at line 137 of file COFF.h.

◆ CodeViewIdentifiers

Enumerator
DEBUG_SECTION_MAGIC 
DEBUG_HASHES_SECTION_MAGIC 

Definition at line 820 of file COFF.h.

◆ COMDATType

Enumerator
IMAGE_COMDAT_SELECT_NODUPLICATES 
IMAGE_COMDAT_SELECT_ANY 
IMAGE_COMDAT_SELECT_SAME_SIZE 
IMAGE_COMDAT_SELECT_EXACT_MATCH 
IMAGE_COMDAT_SELECT_ASSOCIATIVE 
IMAGE_COMDAT_SELECT_LARGEST 
IMAGE_COMDAT_SELECT_NEWEST 

Definition at line 453 of file COFF.h.

◆ DataDirectoryIndex

Enumerator
EXPORT_TABLE 
IMPORT_TABLE 
RESOURCE_TABLE 
EXCEPTION_TABLE 
CERTIFICATE_TABLE 
BASE_RELOCATION_TABLE 
DEBUG_DIRECTORY 
ARCHITECTURE 
GLOBAL_PTR 
TLS_TABLE 
LOAD_CONFIG_TABLE 
BOUND_IMPORT 
IAT 
DELAY_IMPORT_DESCRIPTOR 
CLR_RUNTIME_HEADER 
NUM_DATA_DIRECTORIES 

Definition at line 629 of file COFF.h.

◆ DebugType

Enumerator
IMAGE_DEBUG_TYPE_UNKNOWN 
IMAGE_DEBUG_TYPE_COFF 
IMAGE_DEBUG_TYPE_CODEVIEW 
IMAGE_DEBUG_TYPE_FPO 
IMAGE_DEBUG_TYPE_MISC 
IMAGE_DEBUG_TYPE_EXCEPTION 
IMAGE_DEBUG_TYPE_FIXUP 
IMAGE_DEBUG_TYPE_OMAP_TO_SRC 
IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 
IMAGE_DEBUG_TYPE_BORLAND 
IMAGE_DEBUG_TYPE_RESERVED10 
IMAGE_DEBUG_TYPE_CLSID 
IMAGE_DEBUG_TYPE_VC_FEATURE 
IMAGE_DEBUG_TYPE_POGO 
IMAGE_DEBUG_TYPE_ILTCG 
IMAGE_DEBUG_TYPE_MPX 
IMAGE_DEBUG_TYPE_REPRO 
IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS 

Definition at line 699 of file COFF.h.

◆ DLLCharacteristics

Enumerator
IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA 

ASLR with 64 bit address space.

IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE 

DLL can be relocated at load time.

IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY 

Code integrity checks are enforced.

Image is NX compatible.

IMAGE_DLL_CHARACTERISTICS_NX_COMPAT 
IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION 

Isolation aware, but do not isolate the image.

IMAGE_DLL_CHARACTERISTICS_NO_SEH 

Does not use structured exception handling (SEH).

No SEH handler may be called in this image.

IMAGE_DLL_CHARACTERISTICS_NO_BIND 

Do not bind the image.

Image should execute in an AppContainer.

IMAGE_DLL_CHARACTERISTICS_APPCONTAINER 

A WDM driver.

IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER 

Image supports Control Flow Guard.

IMAGE_DLL_CHARACTERISTICS_GUARD_CF 
IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE 

Terminal Server aware.

Definition at line 668 of file COFF.h.

◆ DynamicRelocationType

Enumerator
IMAGE_DYNAMIC_RELOCATION_GUARD_RF_PROLOGUE 
IMAGE_DYNAMIC_RELOCATION_GUARD_RF_EPILOGUE 
IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER 
IMAGE_DYNAMIC_RELOCATION_GUARD_INDIR_CONTROL_TRANSFER 
IMAGE_DYNAMIC_RELOCATION_GUARD_SWITCHTABLE_BRANCH 
IMAGE_DYNAMIC_RELOCATION_ARM64X 

Definition at line 438 of file COFF.h.

◆ ExtendedDLLCharacteristics

Enumerator
IMAGE_DLL_CHARACTERISTICS_EX_CET_COMPAT 

Image is CET compatible.

Definition at line 694 of file COFF.h.

◆ Feat00Flags

Enumerator
SafeSEH 
GuardStack 
SDL 
GuardCF 
GuardEHCont 
Kernel 

Definition at line 827 of file COFF.h.

◆ GuardFlags

enum class llvm::COFF::GuardFlags : uint32_t
strong
Enumerator
CF_INSTRUMENTED 

Module performs control flow integrity checks using system-supplied support.

CFW_INSTRUMENTED 

Module performs control flow and write integrity checks.

CF_FUNCTION_TABLE_PRESENT 

Module contains valid control flow target metadata.

SECURITY_COOKIE_UNUSED 

Module does not make use of the /GS security cookie.

PROTECT_DELAYLOAD_IAT 

Module supports read only delay load IAT.

DELAYLOAD_IAT_IN_ITS_OWN_SECTION 

Delayload import table in its own .didat section (with nothing else in it) that can be freely reprotected.

CF_EXPORT_SUPPRESSION_INFO_PRESENT 

Module contains suppressed export information.

This also infers that the address taken IAT table is also present in the load config.

CF_ENABLE_EXPORT_SUPPRESSION 

Module enables suppression of exports.

CF_LONGJUMP_TABLE_PRESENT 

Module contains longjmp target information.

EH_CONTINUATION_TABLE_PRESENT 

Module contains EH continuation target information.

CF_FUNCTION_TABLE_SIZE_MASK 

Mask for the subfield that contains the stride of Control Flow Guard function table entries (that is, the additional count of bytes per table entry).

CF_FUNCTION_TABLE_SIZE_5BYTES 
CF_FUNCTION_TABLE_SIZE_6BYTES 
CF_FUNCTION_TABLE_SIZE_7BYTES 
CF_FUNCTION_TABLE_SIZE_8BYTES 
CF_FUNCTION_TABLE_SIZE_9BYTES 
CF_FUNCTION_TABLE_SIZE_10BYTES 
CF_FUNCTION_TABLE_SIZE_11BYTES 
CF_FUNCTION_TABLE_SIZE_12BYTES 
CF_FUNCTION_TABLE_SIZE_13BYTES 
CF_FUNCTION_TABLE_SIZE_14BYTES 
CF_FUNCTION_TABLE_SIZE_15BYTES 
CF_FUNCTION_TABLE_SIZE_16BYTES 
CF_FUNCTION_TABLE_SIZE_17BYTES 
CF_FUNCTION_TABLE_SIZE_18BYTES 
CF_FUNCTION_TABLE_SIZE_19BYTES 

Definition at line 758 of file COFF.h.

◆ ImportNameType

Enumerator
IMPORT_ORDINAL 

Import is by ordinal.

This indicates that the value in the Ordinal/Hint field of the import header is the import's ordinal. If this constant is not specified, then the Ordinal/Hint field should always be interpreted as the import's hint.

IMPORT_NAME 

The import name is identical to the public symbol name.

IMPORT_NAME_NOPREFIX 

The import name is the public symbol name, but skipping the leading ?, @, or optionally _.

IMPORT_NAME_UNDECORATE 

The import name is the public symbol name, but skipping the leading ?, @, or optionally _, and truncating at the first .

IMPORT_NAME_EXPORTAS 

The import name is specified as a separate string in the import library object file.

Definition at line 739 of file COFF.h.

◆ ImportType

Enumerator
IMPORT_CODE 
IMPORT_DATA 
IMPORT_CONST 

Definition at line 733 of file COFF.h.

◆ MachineTypes

Enumerator
MT_Invalid 
IMAGE_FILE_MACHINE_UNKNOWN 
IMAGE_FILE_MACHINE_AM33 
IMAGE_FILE_MACHINE_AMD64 
IMAGE_FILE_MACHINE_ARM 
IMAGE_FILE_MACHINE_ARMNT 
IMAGE_FILE_MACHINE_ARM64 
IMAGE_FILE_MACHINE_ARM64EC 
IMAGE_FILE_MACHINE_ARM64X 
IMAGE_FILE_MACHINE_EBC 
IMAGE_FILE_MACHINE_I386 
IMAGE_FILE_MACHINE_IA64 
IMAGE_FILE_MACHINE_M32R 
IMAGE_FILE_MACHINE_MIPS16 
IMAGE_FILE_MACHINE_MIPSFPU 
IMAGE_FILE_MACHINE_MIPSFPU16 
IMAGE_FILE_MACHINE_POWERPC 
IMAGE_FILE_MACHINE_POWERPCFP 
IMAGE_FILE_MACHINE_R4000 
IMAGE_FILE_MACHINE_RISCV32 
IMAGE_FILE_MACHINE_RISCV64 
IMAGE_FILE_MACHINE_RISCV128 
IMAGE_FILE_MACHINE_SH3 
IMAGE_FILE_MACHINE_SH3DSP 
IMAGE_FILE_MACHINE_SH4 
IMAGE_FILE_MACHINE_SH5 
IMAGE_FILE_MACHINE_THUMB 
IMAGE_FILE_MACHINE_WCEMIPSV2 

Definition at line 92 of file COFF.h.

◆ RelocationTypeAMD64

Enumerator
IMAGE_REL_AMD64_ABSOLUTE 
IMAGE_REL_AMD64_ADDR64 
IMAGE_REL_AMD64_ADDR32 
IMAGE_REL_AMD64_ADDR32NB 
IMAGE_REL_AMD64_REL32 
IMAGE_REL_AMD64_REL32_1 
IMAGE_REL_AMD64_REL32_2 
IMAGE_REL_AMD64_REL32_3 
IMAGE_REL_AMD64_REL32_4 
IMAGE_REL_AMD64_REL32_5 
IMAGE_REL_AMD64_SECTION 
IMAGE_REL_AMD64_SECREL 
IMAGE_REL_AMD64_SECREL7 
IMAGE_REL_AMD64_TOKEN 
IMAGE_REL_AMD64_SREL32 
IMAGE_REL_AMD64_PAIR 
IMAGE_REL_AMD64_SSPAN32 

Definition at line 359 of file COFF.h.

◆ RelocationTypeI386

Enumerator
IMAGE_REL_I386_ABSOLUTE 
IMAGE_REL_I386_DIR16 
IMAGE_REL_I386_REL16 
IMAGE_REL_I386_DIR32 
IMAGE_REL_I386_DIR32NB 
IMAGE_REL_I386_SEG12 
IMAGE_REL_I386_SECTION 
IMAGE_REL_I386_SECREL 
IMAGE_REL_I386_TOKEN 
IMAGE_REL_I386_SECREL7 
IMAGE_REL_I386_REL32 

Definition at line 345 of file COFF.h.

◆ RelocationTypesARM

Enumerator
IMAGE_REL_ARM_ABSOLUTE 
IMAGE_REL_ARM_ADDR32 
IMAGE_REL_ARM_ADDR32NB 
IMAGE_REL_ARM_BRANCH24 
IMAGE_REL_ARM_BRANCH11 
IMAGE_REL_ARM_TOKEN 
IMAGE_REL_ARM_BLX24 
IMAGE_REL_ARM_BLX11 
IMAGE_REL_ARM_REL32 
IMAGE_REL_ARM_SECTION 
IMAGE_REL_ARM_SECREL 
IMAGE_REL_ARM_MOV32A 
IMAGE_REL_ARM_MOV32T 
IMAGE_REL_ARM_BRANCH20T 
IMAGE_REL_ARM_BRANCH24T 
IMAGE_REL_ARM_BLX23T 
IMAGE_REL_ARM_PAIR 

Definition at line 379 of file COFF.h.

◆ RelocationTypesARM64

Enumerator
IMAGE_REL_ARM64_ABSOLUTE 
IMAGE_REL_ARM64_ADDR32 
IMAGE_REL_ARM64_ADDR32NB 
IMAGE_REL_ARM64_BRANCH26 
IMAGE_REL_ARM64_PAGEBASE_REL21 
IMAGE_REL_ARM64_REL21 
IMAGE_REL_ARM64_PAGEOFFSET_12A 
IMAGE_REL_ARM64_PAGEOFFSET_12L 
IMAGE_REL_ARM64_SECREL 
IMAGE_REL_ARM64_SECREL_LOW12A 
IMAGE_REL_ARM64_SECREL_HIGH12A 
IMAGE_REL_ARM64_SECREL_LOW12L 
IMAGE_REL_ARM64_TOKEN 
IMAGE_REL_ARM64_SECTION 
IMAGE_REL_ARM64_ADDR64 
IMAGE_REL_ARM64_BRANCH19 
IMAGE_REL_ARM64_BRANCH14 
IMAGE_REL_ARM64_REL32 

Definition at line 399 of file COFF.h.

◆ RelocationTypesMips

Enumerator
IMAGE_REL_MIPS_ABSOLUTE 
IMAGE_REL_MIPS_REFHALF 
IMAGE_REL_MIPS_REFWORD 
IMAGE_REL_MIPS_JMPADDR 
IMAGE_REL_MIPS_REFHI 
IMAGE_REL_MIPS_REFLO 
IMAGE_REL_MIPS_GPREL 
IMAGE_REL_MIPS_LITERAL 
IMAGE_REL_MIPS_SECTION 
IMAGE_REL_MIPS_SECREL 
IMAGE_REL_MIPS_SECRELLO 
IMAGE_REL_MIPS_SECRELHI 
IMAGE_REL_MIPS_JMPADDR16 
IMAGE_REL_MIPS_REFWORDNB 
IMAGE_REL_MIPS_PAIR 

Definition at line 420 of file COFF.h.

◆ ResourceTypeID

Enumerator
RID_Cursor 
RID_Bitmap 
RID_Icon 
RID_Menu 
RID_Dialog 
RID_String 
RID_FontDir 
RID_Font 
RID_Accelerator 
RID_RCData 
RID_MessageTable 
RID_Group_Cursor 
RID_Group_Icon 
RID_Version 
RID_DLGInclude 
RID_PlugPlay 
RID_VXD 
RID_AniCursor 
RID_AniIcon 
RID_HTML 
RID_Manifest 

Definition at line 177 of file COFF.h.

◆ SectionCharacteristics

Enumerator
SC_Invalid 
IMAGE_SCN_TYPE_NOLOAD 
IMAGE_SCN_TYPE_NO_PAD 
IMAGE_SCN_CNT_CODE 
IMAGE_SCN_CNT_INITIALIZED_DATA 
IMAGE_SCN_CNT_UNINITIALIZED_DATA 
IMAGE_SCN_LNK_OTHER 
IMAGE_SCN_LNK_INFO 
IMAGE_SCN_LNK_REMOVE 
IMAGE_SCN_LNK_COMDAT 
IMAGE_SCN_GPREL 
IMAGE_SCN_MEM_PURGEABLE 
IMAGE_SCN_MEM_16BIT 
IMAGE_SCN_MEM_LOCKED 
IMAGE_SCN_MEM_PRELOAD 
IMAGE_SCN_ALIGN_1BYTES 
IMAGE_SCN_ALIGN_2BYTES 
IMAGE_SCN_ALIGN_4BYTES 
IMAGE_SCN_ALIGN_8BYTES 
IMAGE_SCN_ALIGN_16BYTES 
IMAGE_SCN_ALIGN_32BYTES 
IMAGE_SCN_ALIGN_64BYTES 
IMAGE_SCN_ALIGN_128BYTES 
IMAGE_SCN_ALIGN_256BYTES 
IMAGE_SCN_ALIGN_512BYTES 
IMAGE_SCN_ALIGN_1024BYTES 
IMAGE_SCN_ALIGN_2048BYTES 
IMAGE_SCN_ALIGN_4096BYTES 
IMAGE_SCN_ALIGN_8192BYTES 
IMAGE_SCN_ALIGN_MASK 
IMAGE_SCN_LNK_NRELOC_OVFL 
IMAGE_SCN_MEM_DISCARDABLE 
IMAGE_SCN_MEM_NOT_CACHED 
IMAGE_SCN_MEM_NOT_PAGED 
IMAGE_SCN_MEM_SHARED 
IMAGE_SCN_MEM_EXECUTE 
IMAGE_SCN_MEM_READ 
IMAGE_SCN_MEM_WRITE 

Definition at line 297 of file COFF.h.

◆ SymbolBaseType

Enumerator
IMAGE_SYM_TYPE_NULL 

No type information or unknown base type.

IMAGE_SYM_TYPE_VOID 

Used with void pointers and functions.

IMAGE_SYM_TYPE_CHAR 

A character (signed byte).

IMAGE_SYM_TYPE_SHORT 

A 2-byte signed integer.

IMAGE_SYM_TYPE_INT 

A natural integer type on the target.

IMAGE_SYM_TYPE_LONG 

A 4-byte signed integer.

IMAGE_SYM_TYPE_FLOAT 

A 4-byte floating-point number.

IMAGE_SYM_TYPE_DOUBLE 

An 8-byte floating-point number.

IMAGE_SYM_TYPE_STRUCT 

A structure.

IMAGE_SYM_TYPE_UNION 

An union.

IMAGE_SYM_TYPE_ENUM 

An enumerated type.

IMAGE_SYM_TYPE_MOE 

A member of enumeration (a specific value).

IMAGE_SYM_TYPE_BYTE 

A byte; unsigned 1-byte integer.

IMAGE_SYM_TYPE_WORD 

A word; unsigned 2-byte integer.

IMAGE_SYM_TYPE_UINT 

An unsigned integer of natural size.

IMAGE_SYM_TYPE_DWORD 

An unsigned 4-byte integer.

Definition at line 253 of file COFF.h.

◆ SymbolComplexType

Enumerator
IMAGE_SYM_DTYPE_NULL 

No complex type; simple scalar variable.

IMAGE_SYM_DTYPE_POINTER 

A pointer to base type.

IMAGE_SYM_DTYPE_FUNCTION 

A function that returns a base type.

IMAGE_SYM_DTYPE_ARRAY 

An array of base type.

SCT_COMPLEX_TYPE_SHIFT 

Type is formed as (base + (derived << SCT_COMPLEX_TYPE_SHIFT))

Definition at line 272 of file COFF.h.

◆ SymbolSectionNumber

Enumerator
IMAGE_SYM_DEBUG 
IMAGE_SYM_ABSOLUTE 
IMAGE_SYM_UNDEFINED 

Definition at line 210 of file COFF.h.

◆ SymbolStorageClass

Storage class tells where and what the symbol represents.

Enumerator
SSC_Invalid 
IMAGE_SYM_CLASS_END_OF_FUNCTION 

Physical end of function.

IMAGE_SYM_CLASS_NULL 

No symbol.

IMAGE_SYM_CLASS_AUTOMATIC 

Stack variable.

IMAGE_SYM_CLASS_EXTERNAL 

External symbol.

IMAGE_SYM_CLASS_STATIC 

Static.

IMAGE_SYM_CLASS_REGISTER 

Register variable.

IMAGE_SYM_CLASS_EXTERNAL_DEF 

External definition.

IMAGE_SYM_CLASS_LABEL 

Label.

IMAGE_SYM_CLASS_UNDEFINED_LABEL 

Undefined label.

IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 

Member of structure.

IMAGE_SYM_CLASS_ARGUMENT 

Function argument.

IMAGE_SYM_CLASS_STRUCT_TAG 

Structure tag.

IMAGE_SYM_CLASS_MEMBER_OF_UNION 

Member of union.

IMAGE_SYM_CLASS_UNION_TAG 

Union tag.

IMAGE_SYM_CLASS_TYPE_DEFINITION 

Type definition.

IMAGE_SYM_CLASS_UNDEFINED_STATIC 

Undefined static.

IMAGE_SYM_CLASS_ENUM_TAG 

Enumeration tag.

IMAGE_SYM_CLASS_MEMBER_OF_ENUM 

Member of enumeration.

IMAGE_SYM_CLASS_REGISTER_PARAM 

Register parameter.

IMAGE_SYM_CLASS_BIT_FIELD 

Bit field.

IMAGE_SYM_CLASS_BLOCK 

".bb" or ".eb" - beginning or end of block

IMAGE_SYM_CLASS_FUNCTION 

".bf" or ".ef" - beginning or end of function

IMAGE_SYM_CLASS_END_OF_STRUCT 

End of structure.

IMAGE_SYM_CLASS_FILE 

File name.

IMAGE_SYM_CLASS_SECTION 

Line number, reformatted as symbol.

IMAGE_SYM_CLASS_WEAK_EXTERNAL 

Duplicate tag.

IMAGE_SYM_CLASS_CLR_TOKEN 

External symbol in dmert public lib.

Definition at line 217 of file COFF.h.

◆ WeakExternalCharacteristics

Enumerator
IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 
IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 
IMAGE_WEAK_EXTERN_SEARCH_ALIAS 
IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY 

Definition at line 486 of file COFF.h.

◆ WindowsSubsystem

Enumerator
IMAGE_SUBSYSTEM_UNKNOWN 

An unknown subsystem.

IMAGE_SUBSYSTEM_NATIVE 

Device drivers and native Windows processes.

IMAGE_SUBSYSTEM_WINDOWS_GUI 

The Windows GUI subsystem.

IMAGE_SUBSYSTEM_WINDOWS_CUI 

The Windows character subsystem.

IMAGE_SUBSYSTEM_OS2_CUI 

The OS/2 character subsystem.

IMAGE_SUBSYSTEM_POSIX_CUI 

The POSIX character subsystem.

IMAGE_SUBSYSTEM_NATIVE_WINDOWS 

Native Windows 9x driver.

IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 

Windows CE.

IMAGE_SUBSYSTEM_EFI_APPLICATION 

An EFI application.

IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 

An EFI driver with boot services.

IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 

An EFI driver with run-time services.

IMAGE_SUBSYSTEM_EFI_ROM 

An EFI ROM image.

IMAGE_SUBSYSTEM_XBOX 

XBOX.

IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION 

A BCD application.

Definition at line 649 of file COFF.h.

Function Documentation

◆ encodeSectionName()

bool llvm::COFF::encodeSectionName ( char Out,
uint64_t  Offset 
)

◆ is64Bit()

template<typename T >
bool llvm::COFF::is64Bit ( T  Machine)

◆ isAnyArm64()

template<typename T >
bool llvm::COFF::isAnyArm64 ( T  Machine)

◆ isArm64EC()

template<typename T >
bool llvm::COFF::isArm64EC ( T  Machine)

◆ isReservedSectionNumber()

bool llvm::COFF::isReservedSectionNumber ( int32_t  SectionNumber)
inline

◆ operator|() [1/3]

Characteristics llvm::COFF::operator| ( Characteristics  a,
Characteristics  b 
)
inline

Definition at line 31 of file COFFYAML.h.

◆ operator|() [2/3]

DLLCharacteristics llvm::COFF::operator| ( DLLCharacteristics  a,
DLLCharacteristics  b 
)
inline

Definition at line 42 of file COFFYAML.h.

◆ operator|() [3/3]

SectionCharacteristics llvm::COFF::operator| ( SectionCharacteristics  a,
SectionCharacteristics  b 
)
inline

Definition at line 36 of file COFFYAML.h.

Variable Documentation

◆ BigObjMagic

const char llvm::COFF::BigObjMagic[]
static
Initial value:
= {
'\xc7', '\xa1', '\xba', '\xd1', '\xee', '\xba', '\xa9', '\x4b',
'\xaf', '\x20', '\xfa', '\xf6', '\x6a', '\xa4', '\xdc', '\xb8',
}

Definition at line 37 of file COFF.h.

Referenced by llvm::jitlink::createLinkGraphFromCOFFObject(), llvm::identify_magic(), and writeCOFF().

◆ ClGlObjMagic

const char llvm::COFF::ClGlObjMagic[]
static
Initial value:
= {
'\x38', '\xfe', '\xb3', '\x0c', '\xa5', '\xd9', '\xab', '\x4d',
'\xac', '\x9b', '\xd6', '\xb6', '\x22', '\x26', '\x53', '\xc2',
}

Definition at line 42 of file COFF.h.

Referenced by llvm::identify_magic().

◆ MaxNumberOfSections16

const int32_t llvm::COFF::MaxNumberOfSections16 = 65279

◆ PEMagic

const char llvm::COFF::PEMagic[] = {'P', 'E', '\0', '\0'}
static

◆ WinResMagic

const char llvm::COFF::WinResMagic[]
static
Initial value:
= {
'\x00', '\x00', '\x00', '\x00', '\x20', '\x00', '\x00', '\x00',
'\xff', '\xff', '\x00', '\x00', '\xff', '\xff', '\x00', '\x00',
}

Definition at line 48 of file COFF.h.

Referenced by llvm::identify_magic().