LLVM API Documentation

Classes | Enumerations | Functions | Variables
llvm::COFF Namespace Reference

Classes

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

Enumerations

enum  {
  Header16Size = 20, Header32Size = 56, NameSize = 8, Symbol16Size = 18,
  Symbol32Size = 20, SectionSize = 40, RelocationSize = 10
}
enum  MachineTypes {
  MT_Invalid = 0xffff, IMAGE_FILE_MACHINE_UNKNOWN = 0x0, IMAGE_FILE_MACHINE_AM33 = 0x13, IMAGE_FILE_MACHINE_AMD64 = 0x8664,
  IMAGE_FILE_MACHINE_ARM = 0x1C0, IMAGE_FILE_MACHINE_ARMNT = 0x1C4, 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_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 {
  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  SymbolFlags {
  SF_TypeMask = 0x0000FFFF, SF_TypeShift = 0, SF_ClassMask = 0x00FF0000, SF_ClassShift = 16,
  SF_WeakExternal = 0x01000000
}
enum  SymbolSectionNumber { 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 {
  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 {
  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 {
  SC_Invalid = 0xffffffff, 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 {
  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 {
  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 {
  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  COMDATType {
  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 { IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1, IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2, IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 }
 These are not documented in the spec, but are located in WinNT.h. More...
enum  DataDirectoryIndex {
  EXPORT_TABLE = 0, IMPORT_TABLE, RESOURCE_TABLE, EXCEPTION_TABLE,
  CERTIFICATE_TABLE, BASE_RELOCATION_TABLE, DEBUG, ARCHITECTURE,
  GLOBAL_PTR, TLS_TABLE, LOAD_CONFIG_TABLE, BOUND_IMPORT,
  IAT, DELAY_IMPORT_DESCRIPTOR, CLR_RUNTIME_HEADER
}
enum  WindowsSubsystem {
  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 {
  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 {
  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_CLSID = 11
}
enum  BaseRelocationType {
  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 { IMPORT_CODE = 0, IMPORT_DATA = 1, IMPORT_CONST = 2 }
enum  ImportNameType { IMPORT_ORDINAL = 0, IMPORT_NAME = 1, IMPORT_NAME_NOPREFIX = 2, IMPORT_NAME_UNDECORATE = 3 }
enum  CodeViewLineTableIdentifiers { DEBUG_SECTION_MAGIC = 0x4, DEBUG_LINE_TABLE_SUBSECTION = 0xF2, DEBUG_STRING_TABLE_SUBSECTION = 0xF3, DEBUG_INDEX_SUBSECTION = 0xF4 }

Functions

Characteristics operator| (Characteristics a, Characteristics b)
SectionCharacteristics operator| (SectionCharacteristics a, SectionCharacteristics b)
bool isReservedSectionNumber (int32_t SectionNumber)

Variables

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

Enumeration Type Documentation

anonymous enum
Enumerator:
Header16Size 
Header32Size 
NameSize 
Symbol16Size 
Symbol32Size 
SectionSize 
RelocationSize 

Definition at line 45 of file Support/COFF.h.

Enumerator:
IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF 

Definition at line 240 of file Support/COFF.h.

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 609 of file Support/COFF.h.

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 109 of file Support/COFF.h.

Enumerator:
DEBUG_SECTION_MAGIC 
DEBUG_LINE_TABLE_SUBSECTION 
DEBUG_STRING_TABLE_SUBSECTION 
DEBUG_INDEX_SUBSECTION 

Definition at line 663 of file Support/COFF.h.

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 355 of file Support/COFF.h.

Enumerator:
EXPORT_TABLE 
IMPORT_TABLE 
RESOURCE_TABLE 
EXCEPTION_TABLE 
CERTIFICATE_TABLE 
BASE_RELOCATION_TABLE 
DEBUG 
ARCHITECTURE 
GLOBAL_PTR 
TLS_TABLE 
LOAD_CONFIG_TABLE 
BOUND_IMPORT 
IAT 
DELAY_IMPORT_DESCRIPTOR 
CLR_RUNTIME_HEADER 

Definition at line 532 of file Support/COFF.h.

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_CLSID 

Definition at line 595 of file Support/COFF.h.

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 569 of file Support/COFF.h.

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 628 of file Support/COFF.h.

Enumerator:
IMPORT_CODE 
IMPORT_DATA 
IMPORT_CONST 

Definition at line 622 of file Support/COFF.h.

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_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_SH3 
IMAGE_FILE_MACHINE_SH3DSP 
IMAGE_FILE_MACHINE_SH4 
IMAGE_FILE_MACHINE_SH5 
IMAGE_FILE_MACHINE_THUMB 
IMAGE_FILE_MACHINE_WCEMIPSV2 

Definition at line 83 of file Support/COFF.h.

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 317 of file Support/COFF.h.

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 303 of file Support/COFF.h.

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 337 of file Support/COFF.h.

Enumerator:
SC_Invalid 
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 257 of file Support/COFF.h.

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 211 of file Support/COFF.h.

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 230 of file Support/COFF.h.

Enumerator:
SF_TypeMask 
SF_TypeShift 
SF_ClassMask 
SF_ClassShift 
SF_WeakExternal 

Definition at line 158 of file Support/COFF.h.

Enumerator:
IMAGE_SYM_DEBUG 
IMAGE_SYM_ABSOLUTE 
IMAGE_SYM_UNDEFINED 

Definition at line 168 of file Support/COFF.h.

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 175 of file Support/COFF.h.

These are not documented in the spec, but are located in WinNT.h.

Enumerator:
IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 
IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 
IMAGE_WEAK_EXTERN_SEARCH_ALIAS 

Definition at line 389 of file Support/COFF.h.

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 550 of file Support/COFF.h.


Function Documentation

bool llvm::COFF::isReservedSectionNumber ( int32_t  SectionNumber) [inline]
Characteristics llvm::COFF::operator| ( Characteristics  a,
Characteristics  b 
) [inline]

Definition at line 24 of file COFFYAML.h.

References llvm::MipsISD::Ret.

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

Definition at line 29 of file COFFYAML.h.

References llvm::MipsISD::Ret.


Variable Documentation

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 Support/COFF.h.

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

Definition at line 34 of file Support/COFF.h.

Referenced by llvm::object::COFFSymbolRef::getSectionNumber().

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

Definition at line 37 of file Support/COFF.h.

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