LLVM  8.0.1
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_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_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_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
}
 
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
}
 
enum  COMDATType : unsigned {
  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 }
 
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  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
}
 
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 }
 
enum  CodeViewIdentifiers { DEBUG_SECTION_MAGIC = 0x4, DEBUG_HASHES_SECTION_MAGIC = 0x133C9C5 }
 

Functions

bool isReservedSectionNumber (int32_t SectionNumber)
 
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 56 of file COFF.h.

◆ AuxSymbolType

Enumerator
IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF 

Definition at line 269 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 663 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 124 of file COFF.h.

◆ CodeViewIdentifiers

Enumerator
DEBUG_SECTION_MAGIC 
DEBUG_HASHES_SECTION_MAGIC 

Definition at line 715 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 403 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 578 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 

Definition at line 643 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 617 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 .

Definition at line 682 of file COFF.h.

◆ ImportType

Enumerator
IMPORT_CODE 
IMPORT_DATA 
IMPORT_CONST 

Definition at line 676 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_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 94 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 345 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 331 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_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 

Definition at line 365 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 

Definition at line 383 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 164 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_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 284 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 240 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 259 of file COFF.h.

◆ SymbolSectionNumber

Enumerator
IMAGE_SYM_DEBUG 
IMAGE_SYM_ABSOLUTE 
IMAGE_SYM_UNDEFINED 

Definition at line 197 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 204 of file COFF.h.

◆ WeakExternalCharacteristics

Enumerator
IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 
IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 
IMAGE_WEAK_EXTERN_SEARCH_ALIAS 

Definition at line 436 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 subsytem.

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 598 of file COFF.h.

Function Documentation

◆ 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.

References llvm::MipsISD::Ret.

◆ operator|() [2/3]

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

Definition at line 36 of file COFFYAML.h.

References llvm::MipsISD::Ret.

◆ operator|() [3/3]

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

Definition at line 42 of file COFFYAML.h.

References llvm::MipsISD::Ret.

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 39 of file COFF.h.

Referenced by llvm::object::COFFObjectFile::COFFObjectFile(), encodeBase64StringEntry(), and llvm::identify_magic().

◆ 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 44 of file COFF.h.

◆ MaxNumberOfSections16

const int32_t llvm::COFF::MaxNumberOfSections16 = 65279

Definition at line 34 of file COFF.h.

Referenced by llvm::object::COFFSymbolRef::getSectionNumber(), and isAssociative().

◆ PEMagic

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

Definition at line 37 of file COFF.h.

Referenced by llvm::object::COFFObjectFile::COFFObjectFile().

◆ 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 50 of file COFF.h.