LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Enumerations | Functions | Variables
Support/COFF.h File Reference
#include "llvm/Support/DataTypes.h"
#include <cassert>
#include <cstring>
Include dependency graph for Support/COFF.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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

Namespaces

 llvm
 List of target independent CodeGen pass IDs.
 
 llvm::COFF
 

Enumerations

enum  {
  llvm::COFF::HeaderSize = 20, llvm::COFF::NameSize = 8, llvm::COFF::SymbolSize = 18, llvm::COFF::SectionSize = 40,
  llvm::COFF::RelocationSize = 10
}
 
enum  llvm::COFF::MachineTypes {
  llvm::COFF::MT_Invalid = 0xffff, llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN = 0x0, llvm::COFF::IMAGE_FILE_MACHINE_AM33 = 0x13, llvm::COFF::IMAGE_FILE_MACHINE_AMD64 = 0x8664,
  llvm::COFF::IMAGE_FILE_MACHINE_ARM = 0x1C0, llvm::COFF::IMAGE_FILE_MACHINE_ARMV7 = 0x1C4, llvm::COFF::IMAGE_FILE_MACHINE_EBC = 0xEBC, llvm::COFF::IMAGE_FILE_MACHINE_I386 = 0x14C,
  llvm::COFF::IMAGE_FILE_MACHINE_IA64 = 0x200, llvm::COFF::IMAGE_FILE_MACHINE_M32R = 0x9041, llvm::COFF::IMAGE_FILE_MACHINE_MIPS16 = 0x266, llvm::COFF::IMAGE_FILE_MACHINE_MIPSFPU = 0x366,
  llvm::COFF::IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466, llvm::COFF::IMAGE_FILE_MACHINE_POWERPC = 0x1F0, llvm::COFF::IMAGE_FILE_MACHINE_POWERPCFP = 0x1F1, llvm::COFF::IMAGE_FILE_MACHINE_R4000 = 0x166,
  llvm::COFF::IMAGE_FILE_MACHINE_SH3 = 0x1A2, llvm::COFF::IMAGE_FILE_MACHINE_SH3DSP = 0x1A3, llvm::COFF::IMAGE_FILE_MACHINE_SH4 = 0x1A6, llvm::COFF::IMAGE_FILE_MACHINE_SH5 = 0x1A8,
  llvm::COFF::IMAGE_FILE_MACHINE_THUMB = 0x1C2, llvm::COFF::IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x169
}
 
enum  llvm::COFF::Characteristics {
  llvm::COFF::C_Invalid = 0, llvm::COFF::IMAGE_FILE_RELOCS_STRIPPED = 0x0001, llvm::COFF::IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002, llvm::COFF::IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004,
  llvm::COFF::IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008, llvm::COFF::IMAGE_FILE_AGGRESSIVE_WS_TRIM = 0x0010, llvm::COFF::IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020, llvm::COFF::IMAGE_FILE_BYTES_REVERSED_LO = 0x0080,
  llvm::COFF::IMAGE_FILE_32BIT_MACHINE = 0x0100, llvm::COFF::IMAGE_FILE_DEBUG_STRIPPED = 0x0200, llvm::COFF::IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400, llvm::COFF::IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800,
  llvm::COFF::IMAGE_FILE_SYSTEM = 0x1000, llvm::COFF::IMAGE_FILE_DLL = 0x2000, llvm::COFF::IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000, llvm::COFF::IMAGE_FILE_BYTES_REVERSED_HI = 0x8000
}
 
enum  llvm::COFF::SymbolFlags {
  llvm::COFF::SF_TypeMask = 0x0000FFFF, llvm::COFF::SF_TypeShift = 0, llvm::COFF::SF_ClassMask = 0x00FF0000, llvm::COFF::SF_ClassShift = 16,
  llvm::COFF::SF_WeakExternal = 0x01000000
}
 
enum  llvm::COFF::SymbolSectionNumber { llvm::COFF::IMAGE_SYM_DEBUG = -2, llvm::COFF::IMAGE_SYM_ABSOLUTE = -1, llvm::COFF::IMAGE_SYM_UNDEFINED = 0 }
 
enum  llvm::COFF::SymbolStorageClass {
  llvm::COFF::SSC_Invalid = 0xff, llvm::COFF::IMAGE_SYM_CLASS_END_OF_FUNCTION = -1, llvm::COFF::IMAGE_SYM_CLASS_NULL = 0, llvm::COFF::IMAGE_SYM_CLASS_AUTOMATIC = 1,
  llvm::COFF::IMAGE_SYM_CLASS_EXTERNAL = 2, llvm::COFF::IMAGE_SYM_CLASS_STATIC = 3, llvm::COFF::IMAGE_SYM_CLASS_REGISTER = 4, llvm::COFF::IMAGE_SYM_CLASS_EXTERNAL_DEF = 5,
  llvm::COFF::IMAGE_SYM_CLASS_LABEL = 6, llvm::COFF::IMAGE_SYM_CLASS_UNDEFINED_LABEL = 7, llvm::COFF::IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 8, llvm::COFF::IMAGE_SYM_CLASS_ARGUMENT = 9,
  llvm::COFF::IMAGE_SYM_CLASS_STRUCT_TAG = 10, llvm::COFF::IMAGE_SYM_CLASS_MEMBER_OF_UNION = 11, llvm::COFF::IMAGE_SYM_CLASS_UNION_TAG = 12, llvm::COFF::IMAGE_SYM_CLASS_TYPE_DEFINITION = 13,
  llvm::COFF::IMAGE_SYM_CLASS_UNDEFINED_STATIC = 14, llvm::COFF::IMAGE_SYM_CLASS_ENUM_TAG = 15, llvm::COFF::IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 16, llvm::COFF::IMAGE_SYM_CLASS_REGISTER_PARAM = 17,
  llvm::COFF::IMAGE_SYM_CLASS_BIT_FIELD = 18, llvm::COFF::IMAGE_SYM_CLASS_BLOCK = 100, llvm::COFF::IMAGE_SYM_CLASS_FUNCTION = 101, llvm::COFF::IMAGE_SYM_CLASS_END_OF_STRUCT = 102,
  llvm::COFF::IMAGE_SYM_CLASS_FILE = 103, llvm::COFF::IMAGE_SYM_CLASS_SECTION = 104, llvm::COFF::IMAGE_SYM_CLASS_WEAK_EXTERNAL = 105, llvm::COFF::IMAGE_SYM_CLASS_CLR_TOKEN = 107
}
 Storage class tells where and what the symbol represents. More...
 
enum  llvm::COFF::SymbolBaseType {
  llvm::COFF::IMAGE_SYM_TYPE_NULL = 0, llvm::COFF::IMAGE_SYM_TYPE_VOID = 1, llvm::COFF::IMAGE_SYM_TYPE_CHAR = 2, llvm::COFF::IMAGE_SYM_TYPE_SHORT = 3,
  llvm::COFF::IMAGE_SYM_TYPE_INT = 4, llvm::COFF::IMAGE_SYM_TYPE_LONG = 5, llvm::COFF::IMAGE_SYM_TYPE_FLOAT = 6, llvm::COFF::IMAGE_SYM_TYPE_DOUBLE = 7,
  llvm::COFF::IMAGE_SYM_TYPE_STRUCT = 8, llvm::COFF::IMAGE_SYM_TYPE_UNION = 9, llvm::COFF::IMAGE_SYM_TYPE_ENUM = 10, llvm::COFF::IMAGE_SYM_TYPE_MOE = 11,
  llvm::COFF::IMAGE_SYM_TYPE_BYTE = 12, llvm::COFF::IMAGE_SYM_TYPE_WORD = 13, llvm::COFF::IMAGE_SYM_TYPE_UINT = 14, llvm::COFF::IMAGE_SYM_TYPE_DWORD = 15
}
 
enum  llvm::COFF::SymbolComplexType {
  llvm::COFF::IMAGE_SYM_DTYPE_NULL = 0, llvm::COFF::IMAGE_SYM_DTYPE_POINTER = 1, llvm::COFF::IMAGE_SYM_DTYPE_FUNCTION = 2, llvm::COFF::IMAGE_SYM_DTYPE_ARRAY = 3,
  llvm::COFF::SCT_COMPLEX_TYPE_SHIFT = 4
}
 
enum  llvm::COFF::RelocationTypeX86 {
  llvm::COFF::IMAGE_REL_I386_ABSOLUTE = 0x0000, llvm::COFF::IMAGE_REL_I386_DIR16 = 0x0001, llvm::COFF::IMAGE_REL_I386_REL16 = 0x0002, llvm::COFF::IMAGE_REL_I386_DIR32 = 0x0006,
  llvm::COFF::IMAGE_REL_I386_DIR32NB = 0x0007, llvm::COFF::IMAGE_REL_I386_SEG12 = 0x0009, llvm::COFF::IMAGE_REL_I386_SECTION = 0x000A, llvm::COFF::IMAGE_REL_I386_SECREL = 0x000B,
  llvm::COFF::IMAGE_REL_I386_TOKEN = 0x000C, llvm::COFF::IMAGE_REL_I386_SECREL7 = 0x000D, llvm::COFF::IMAGE_REL_I386_REL32 = 0x0014, llvm::COFF::IMAGE_REL_AMD64_ABSOLUTE = 0x0000,
  llvm::COFF::IMAGE_REL_AMD64_ADDR64 = 0x0001, llvm::COFF::IMAGE_REL_AMD64_ADDR32 = 0x0002, llvm::COFF::IMAGE_REL_AMD64_ADDR32NB = 0x0003, llvm::COFF::IMAGE_REL_AMD64_REL32 = 0x0004,
  llvm::COFF::IMAGE_REL_AMD64_REL32_1 = 0x0005, llvm::COFF::IMAGE_REL_AMD64_REL32_2 = 0x0006, llvm::COFF::IMAGE_REL_AMD64_REL32_3 = 0x0007, llvm::COFF::IMAGE_REL_AMD64_REL32_4 = 0x0008,
  llvm::COFF::IMAGE_REL_AMD64_REL32_5 = 0x0009, llvm::COFF::IMAGE_REL_AMD64_SECTION = 0x000A, llvm::COFF::IMAGE_REL_AMD64_SECREL = 0x000B, llvm::COFF::IMAGE_REL_AMD64_SECREL7 = 0x000C,
  llvm::COFF::IMAGE_REL_AMD64_TOKEN = 0x000D, llvm::COFF::IMAGE_REL_AMD64_SREL32 = 0x000E, llvm::COFF::IMAGE_REL_AMD64_PAIR = 0x000F, llvm::COFF::IMAGE_REL_AMD64_SSPAN32 = 0x0010
}
 
enum  llvm::COFF::RelocationTypesARM {
  llvm::COFF::IMAGE_REL_ARM_ABSOLUTE = 0x0000, llvm::COFF::IMAGE_REL_ARM_ADDR32 = 0x0001, llvm::COFF::IMAGE_REL_ARM_ADDR32NB = 0x0002, llvm::COFF::IMAGE_REL_ARM_BRANCH24 = 0x0003,
  llvm::COFF::IMAGE_REL_ARM_BRANCH11 = 0x0004, llvm::COFF::IMAGE_REL_ARM_TOKEN = 0x0005, llvm::COFF::IMAGE_REL_ARM_BLX24 = 0x0008, llvm::COFF::IMAGE_REL_ARM_BLX11 = 0x0009,
  llvm::COFF::IMAGE_REL_ARM_SECTION = 0x000E, llvm::COFF::IMAGE_REL_ARM_SECREL = 0x000F, llvm::COFF::IMAGE_REL_ARM_MOV32A = 0x0010, llvm::COFF::IMAGE_REL_ARM_MOV32T = 0x0011,
  llvm::COFF::IMAGE_REL_ARM_BRANCH20T = 0x0012, llvm::COFF::IMAGE_REL_ARM_BRANCH24T = 0x0014, llvm::COFF::IMAGE_REL_ARM_BLX23T = 0x0015
}
 
enum  llvm::COFF::COMDATType {
  llvm::COFF::IMAGE_COMDAT_SELECT_NODUPLICATES = 1, llvm::COFF::IMAGE_COMDAT_SELECT_ANY, llvm::COFF::IMAGE_COMDAT_SELECT_SAME_SIZE, llvm::COFF::IMAGE_COMDAT_SELECT_EXACT_MATCH,
  llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE, llvm::COFF::IMAGE_COMDAT_SELECT_LARGEST, llvm::COFF::IMAGE_COMDAT_SELECT_NEWEST
}
 
enum  llvm::COFF::WeakExternalCharacteristics { llvm::COFF::IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1, llvm::COFF::IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2, llvm::COFF::IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 }
 These are not documented in the spec, but are located in WinNT.h. More...
 
enum  llvm::COFF::DataDirectoryIndex {
  llvm::COFF::EXPORT_TABLE = 0, llvm::COFF::IMPORT_TABLE, llvm::COFF::RESOURCE_TABLE, llvm::COFF::EXCEPTION_TABLE,
  llvm::COFF::CERTIFICATE_TABLE, llvm::COFF::BASE_RELOCATION_TABLE, llvm::COFF::DEBUG, llvm::COFF::ARCHITECTURE,
  llvm::COFF::GLOBAL_PTR, llvm::COFF::TLS_TABLE, llvm::COFF::LOAD_CONFIG_TABLE, llvm::COFF::BOUND_IMPORT,
  llvm::COFF::IAT, llvm::COFF::DELAY_IMPORT_DESCRIPTOR, llvm::COFF::CLR_RUNTIME_HEADER
}
 
enum  llvm::COFF::WindowsSubsystem {
  llvm::COFF::IMAGE_SUBSYSTEM_UNKNOWN = 0, llvm::COFF::IMAGE_SUBSYSTEM_NATIVE = 1, llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_GUI = 2, llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI = 3,
  llvm::COFF::IMAGE_SUBSYSTEM_OS2_CUI = 5, llvm::COFF::IMAGE_SUBSYSTEM_POSIX_CUI = 7, llvm::COFF::IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8, llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9,
  llvm::COFF::IMAGE_SUBSYSTEM_EFI_APPLICATION = 10, llvm::COFF::IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11, llvm::COFF::IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12, llvm::COFF::IMAGE_SUBSYSTEM_EFI_ROM = 13,
  llvm::COFF::IMAGE_SUBSYSTEM_XBOX = 14, llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16
}
 
enum  llvm::COFF::DLLCharacteristics {
  llvm::COFF::IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040, llvm::COFF::IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080, llvm::COFF::IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100, llvm::COFF::IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION = 0x0200,
  llvm::COFF::IMAGE_DLL_CHARACTERISTICS_NO_SEH = 0x0400, llvm::COFF::IMAGE_DLL_CHARACTERISTICS_NO_BIND = 0x0800, llvm::COFF::IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER = 0x2000, llvm::COFF::IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000
}
 
enum  llvm::COFF::DebugType {
  llvm::COFF::IMAGE_DEBUG_TYPE_UNKNOWN = 0, llvm::COFF::IMAGE_DEBUG_TYPE_COFF = 1, llvm::COFF::IMAGE_DEBUG_TYPE_CODEVIEW = 2, llvm::COFF::IMAGE_DEBUG_TYPE_FPO = 3,
  llvm::COFF::IMAGE_DEBUG_TYPE_MISC = 4, llvm::COFF::IMAGE_DEBUG_TYPE_EXCEPTION = 5, llvm::COFF::IMAGE_DEBUG_TYPE_FIXUP = 6, llvm::COFF::IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7,
  llvm::COFF::IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8, llvm::COFF::IMAGE_DEBUG_TYPE_BORLAND = 9, llvm::COFF::IMAGE_DEBUG_TYPE_CLSID = 11
}
 
enum  llvm::COFF::BaseRelocationType {
  llvm::COFF::IMAGE_REL_BASED_ABSOLUTE = 0, llvm::COFF::IMAGE_REL_BASED_HIGH = 1, llvm::COFF::IMAGE_REL_BASED_LOW = 2, llvm::COFF::IMAGE_REL_BASED_HIGHLOW = 3,
  llvm::COFF::IMAGE_REL_BASED_HIGHADJ = 4, llvm::COFF::IMAGE_REL_BASED_MIPS_JMPADDR = 5, llvm::COFF::IMAGE_REL_BASED_ARM_MOV32A = 5, llvm::COFF::IMAGE_REL_BASED_ARM_MOV32T = 7,
  llvm::COFF::IMAGE_REL_BASED_MIPS_JMPADDR16 = 9, llvm::COFF::IMAGE_REL_BASED_DIR64 = 10
}
 
enum  llvm::COFF::ImportType { llvm::COFF::IMPORT_CODE = 0, llvm::COFF::IMPORT_DATA = 1, llvm::COFF::IMPORT_CONST = 2 }
 
enum  llvm::COFF::ImportNameType { llvm::COFF::IMPORT_ORDINAL = 0, llvm::COFF::IMPORT_NAME = 1, llvm::COFF::IMPORT_NAME_NOPREFIX = 2, llvm::COFF::IMPORT_NAME_UNDECORATE = 3 }
 

Functions

enum SectionCharacteristics llvm::COFF::LLVM_ENUM_INT_TYPE (uint32_t)
 

Variables

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