LLVM API Documentation

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

Go to the source code of this file.

Classes

struct  llvm::MachO::mach_header
 
struct  llvm::MachO::mach_header_64
 
struct  llvm::MachO::load_command
 
struct  llvm::MachO::segment_command
 
struct  llvm::MachO::segment_command_64
 
struct  llvm::MachO::section
 
struct  llvm::MachO::section_64
 
struct  llvm::MachO::fvmlib
 
struct  llvm::MachO::fvmlib_command
 
struct  llvm::MachO::dylib
 
struct  llvm::MachO::dylib_command
 
struct  llvm::MachO::sub_framework_command
 
struct  llvm::MachO::sub_client_command
 
struct  llvm::MachO::sub_umbrella_command
 
struct  llvm::MachO::sub_library_command
 
struct  llvm::MachO::prebound_dylib_command
 
struct  llvm::MachO::dylinker_command
 
struct  llvm::MachO::thread_command
 
struct  llvm::MachO::routines_command
 
struct  llvm::MachO::routines_command_64
 
struct  llvm::MachO::symtab_command
 
struct  llvm::MachO::dysymtab_command
 
struct  llvm::MachO::dylib_table_of_contents
 
struct  llvm::MachO::dylib_module
 
struct  llvm::MachO::dylib_module_64
 
struct  llvm::MachO::dylib_reference
 
struct  llvm::MachO::twolevel_hints_command
 
struct  llvm::MachO::twolevel_hint
 
struct  llvm::MachO::prebind_cksum_command
 
struct  llvm::MachO::uuid_command
 
struct  llvm::MachO::rpath_command
 
struct  llvm::MachO::linkedit_data_command
 
struct  llvm::MachO::data_in_code_entry
 
struct  llvm::MachO::source_version_command
 
struct  llvm::MachO::encryption_info_command
 
struct  llvm::MachO::version_min_command
 
struct  llvm::MachO::dyld_info_command
 
struct  llvm::MachO::linker_options_command
 
struct  llvm::MachO::symseg_command
 
struct  llvm::MachO::ident_command
 
struct  llvm::MachO::fvmfile_command
 
struct  llvm::MachO::tlv_descriptor_32
 
struct  llvm::MachO::tlv_descriptor_64
 
struct  llvm::MachO::tlv_descriptor
 
struct  llvm::MachO::entry_point_command
 
struct  llvm::MachO::fat_header
 
struct  llvm::MachO::fat_arch
 
struct  llvm::MachO::relocation_info
 
struct  llvm::MachO::scattered_relocation_info
 
struct  llvm::MachO::any_relocation_info
 
struct  llvm::MachO::nlist
 
struct  llvm::MachO::nlist_64
 

Namespaces

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

Enumerations

enum  llvm::MachO::HeaderFileType {
  llvm::MachO::MH_OBJECT = 0x1u, llvm::MachO::MH_EXECUTE = 0x2u, llvm::MachO::MH_FVMLIB = 0x3u, llvm::MachO::MH_CORE = 0x4u,
  llvm::MachO::MH_PRELOAD = 0x5u, llvm::MachO::MH_DYLIB = 0x6u, llvm::MachO::MH_DYLINKER = 0x7u, llvm::MachO::MH_BUNDLE = 0x8u,
  llvm::MachO::MH_DYLIB_STUB = 0x9u, llvm::MachO::MH_DSYM = 0xAu, llvm::MachO::MH_KEXT_BUNDLE = 0xBu
}
 
enum  {
  llvm::MachO::MH_NOUNDEFS = 0x00000001u, llvm::MachO::MH_INCRLINK = 0x00000002u, llvm::MachO::MH_DYLDLINK = 0x00000004u, llvm::MachO::MH_BINDATLOAD = 0x00000008u,
  llvm::MachO::MH_PREBOUND = 0x00000010u, llvm::MachO::MH_SPLIT_SEGS = 0x00000020u, llvm::MachO::MH_LAZY_INIT = 0x00000040u, llvm::MachO::MH_TWOLEVEL = 0x00000080u,
  llvm::MachO::MH_FORCE_FLAT = 0x00000100u, llvm::MachO::MH_NOMULTIDEFS = 0x00000200u, llvm::MachO::MH_NOFIXPREBINDING = 0x00000400u, llvm::MachO::MH_PREBINDABLE = 0x00000800u,
  llvm::MachO::MH_ALLMODSBOUND = 0x00001000u, llvm::MachO::MH_SUBSECTIONS_VIA_SYMBOLS = 0x00002000u, llvm::MachO::MH_CANONICAL = 0x00004000u, llvm::MachO::MH_WEAK_DEFINES = 0x00008000u,
  llvm::MachO::MH_BINDS_TO_WEAK = 0x00010000u, llvm::MachO::MH_ALLOW_STACK_EXECUTION = 0x00020000u, llvm::MachO::MH_ROOT_SAFE = 0x00040000u, llvm::MachO::MH_SETUID_SAFE = 0x00080000u,
  llvm::MachO::MH_NO_REEXPORTED_DYLIBS = 0x00100000u, llvm::MachO::MH_PIE = 0x00200000u, llvm::MachO::MH_DEAD_STRIPPABLE_DYLIB = 0x00400000u
}
 
enum  llvm::MachO::SectionType {
  llvm::MachO::S_REGULAR = 0x00u, llvm::MachO::S_ZEROFILL = 0x01u, llvm::MachO::S_CSTRING_LITERALS = 0x02u, llvm::MachO::S_4BYTE_LITERALS = 0x03u,
  llvm::MachO::S_8BYTE_LITERALS = 0x04u, llvm::MachO::S_LITERAL_POINTERS = 0x05u, llvm::MachO::S_NON_LAZY_SYMBOL_POINTERS = 0x06u, llvm::MachO::S_LAZY_SYMBOL_POINTERS = 0x07u,
  llvm::MachO::S_SYMBOL_STUBS = 0x08u, llvm::MachO::S_MOD_INIT_FUNC_POINTERS = 0x09u, llvm::MachO::S_MOD_TERM_FUNC_POINTERS = 0x0au, llvm::MachO::S_COALESCED = 0x0bu,
  llvm::MachO::S_GB_ZEROFILL = 0x0cu, llvm::MachO::S_INTERPOSING = 0x0du, llvm::MachO::S_16BYTE_LITERALS = 0x0eu, llvm::MachO::S_DTRACE_DOF = 0x0fu,
  llvm::MachO::S_LAZY_DYLIB_SYMBOL_POINTERS = 0x10u, llvm::MachO::S_THREAD_LOCAL_REGULAR = 0x11u, llvm::MachO::S_THREAD_LOCAL_ZEROFILL = 0x12u, llvm::MachO::S_THREAD_LOCAL_VARIABLES = 0x13u,
  llvm::MachO::S_THREAD_LOCAL_VARIABLE_POINTERS = 0x14u, llvm::MachO::S_THREAD_LOCAL_INIT_FUNCTION_POINTERS = 0x15u
}
 
enum  llvm::MachO::DataRegionType {
  llvm::MachO::DICE_KIND_DATA = 1u, llvm::MachO::DICE_KIND_JUMP_TABLE8 = 2u, llvm::MachO::DICE_KIND_JUMP_TABLE16 = 3u, llvm::MachO::DICE_KIND_JUMP_TABLE32 = 4u,
  llvm::MachO::DICE_KIND_ABS_JUMP_TABLE32 = 5u
}
 
enum  llvm::MachO::RebaseType { llvm::MachO::REBASE_TYPE_POINTER = 1u, llvm::MachO::REBASE_TYPE_TEXT_ABSOLUTE32 = 2u, llvm::MachO::REBASE_TYPE_TEXT_PCREL32 = 3u }
 
enum  { llvm::MachO::REBASE_OPCODE_MASK = 0xF0u, llvm::MachO::REBASE_IMMEDIATE_MASK = 0x0Fu }
 
enum  llvm::MachO::RebaseOpcode {
  llvm::MachO::REBASE_OPCODE_DONE = 0x00u, llvm::MachO::REBASE_OPCODE_SET_TYPE_IMM = 0x10u, llvm::MachO::REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB = 0x20u, llvm::MachO::REBASE_OPCODE_ADD_ADDR_ULEB = 0x30u,
  llvm::MachO::REBASE_OPCODE_ADD_ADDR_IMM_SCALED = 0x40u, llvm::MachO::REBASE_OPCODE_DO_REBASE_IMM_TIMES = 0x50u, llvm::MachO::REBASE_OPCODE_DO_REBASE_ULEB_TIMES = 0x60u, llvm::MachO::REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB = 0x70u,
  llvm::MachO::REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB = 0x80u
}
 
enum  llvm::MachO::BindType { llvm::MachO::BIND_TYPE_POINTER = 1u, llvm::MachO::BIND_TYPE_TEXT_ABSOLUTE32 = 2u, llvm::MachO::BIND_TYPE_TEXT_PCREL32 = 3u }
 
enum  llvm::MachO::BindSpecialDylib { llvm::MachO::BIND_SPECIAL_DYLIB_SELF = 0, llvm::MachO::BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE = -1, llvm::MachO::BIND_SPECIAL_DYLIB_FLAT_LOOKUP = -2 }
 
enum  { llvm::MachO::BIND_SYMBOL_FLAGS_WEAK_IMPORT = 0x1u, llvm::MachO::BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION = 0x8u, llvm::MachO::BIND_OPCODE_MASK = 0xF0u, llvm::MachO::BIND_IMMEDIATE_MASK = 0x0Fu }
 
enum  llvm::MachO::BindOpcode {
  llvm::MachO::BIND_OPCODE_DONE = 0x00u, llvm::MachO::BIND_OPCODE_SET_DYLIB_ORDINAL_IMM = 0x10u, llvm::MachO::BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB = 0x20u, llvm::MachO::BIND_OPCODE_SET_DYLIB_SPECIAL_IMM = 0x30u,
  llvm::MachO::BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM = 0x40u, llvm::MachO::BIND_OPCODE_SET_TYPE_IMM = 0x50u, llvm::MachO::BIND_OPCODE_SET_ADDEND_SLEB = 0x60u, llvm::MachO::BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB = 0x70u,
  llvm::MachO::BIND_OPCODE_ADD_ADDR_ULEB = 0x80u, llvm::MachO::BIND_OPCODE_DO_BIND = 0x90u, llvm::MachO::BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB = 0xA0u, llvm::MachO::BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED = 0xB0u,
  llvm::MachO::BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB = 0xC0u
}
 
enum  { llvm::MachO::EXPORT_SYMBOL_FLAGS_KIND_MASK = 0x03u, llvm::MachO::EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION = 0x04u, llvm::MachO::EXPORT_SYMBOL_FLAGS_REEXPORT = 0x08u, llvm::MachO::EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER = 0x10u }
 
enum  llvm::MachO::ExportSymbolKind { llvm::MachO::EXPORT_SYMBOL_FLAGS_KIND_REGULAR = 0x00u, llvm::MachO::EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL = 0x01u }
 
enum  { llvm::MachO::N_STAB = 0xe0, llvm::MachO::N_PEXT = 0x10, llvm::MachO::N_TYPE = 0x0e, llvm::MachO::N_EXT = 0x01 }
 
enum  llvm::MachO::NListType {
  llvm::MachO::N_UNDF = 0x0u, llvm::MachO::N_ABS = 0x2u, llvm::MachO::N_SECT = 0xeu, llvm::MachO::N_PBUD = 0xcu,
  llvm::MachO::N_INDR = 0xau
}
 
enum  llvm::MachO::SectionOrdinal { llvm::MachO::NO_SECT = 0u, llvm::MachO::MAX_SECT = 0xffu }
 
enum  {
  llvm::MachO::N_ARM_THUMB_DEF = 0x0008u, llvm::MachO::N_NO_DEAD_STRIP = 0x0020u, llvm::MachO::N_WEAK_REF = 0x0040u, llvm::MachO::N_WEAK_DEF = 0x0080u,
  llvm::MachO::N_SYMBOL_RESOLVER = 0x0100u
}
 
enum  llvm::MachO::StabType {
  llvm::MachO::N_GSYM = 0x20u, llvm::MachO::N_FNAME = 0x22u, llvm::MachO::N_FUN = 0x24u, llvm::MachO::N_STSYM = 0x26u,
  llvm::MachO::N_LCSYM = 0x28u, llvm::MachO::N_BNSYM = 0x2Eu, llvm::MachO::N_OPT = 0x3Cu, llvm::MachO::N_RSYM = 0x40u,
  llvm::MachO::N_SLINE = 0x44u, llvm::MachO::N_ENSYM = 0x4Eu, llvm::MachO::N_SSYM = 0x60u, llvm::MachO::N_SO = 0x64u,
  llvm::MachO::N_OSO = 0x66u, llvm::MachO::N_LSYM = 0x80u, llvm::MachO::N_BINCL = 0x82u, llvm::MachO::N_SOL = 0x84u,
  llvm::MachO::N_PARAMS = 0x86u, llvm::MachO::N_VERSION = 0x88u, llvm::MachO::N_OLEVEL = 0x8Au, llvm::MachO::N_PSYM = 0xA0u,
  llvm::MachO::N_EINCL = 0xA2u, llvm::MachO::N_ENTRY = 0xA4u, llvm::MachO::N_LBRAC = 0xC0u, llvm::MachO::N_EXCL = 0xC2u,
  llvm::MachO::N_RBRAC = 0xE0u, llvm::MachO::N_BCOMM = 0xE2u, llvm::MachO::N_ECOMM = 0xE4u, llvm::MachO::N_ECOML = 0xE8u,
  llvm::MachO::N_LENG = 0xFEu
}
 
enum  llvm::MachO::RelocationInfoType {
  llvm::MachO::GENERIC_RELOC_VANILLA = 0, llvm::MachO::GENERIC_RELOC_PAIR = 1, llvm::MachO::GENERIC_RELOC_SECTDIFF = 2, llvm::MachO::GENERIC_RELOC_PB_LA_PTR = 3,
  llvm::MachO::GENERIC_RELOC_LOCAL_SECTDIFF = 4, llvm::MachO::GENERIC_RELOC_TLV = 5, llvm::MachO::PPC_RELOC_VANILLA = GENERIC_RELOC_VANILLA, llvm::MachO::PPC_RELOC_PAIR = GENERIC_RELOC_PAIR,
  llvm::MachO::PPC_RELOC_BR14 = 2, llvm::MachO::PPC_RELOC_BR24 = 3, llvm::MachO::PPC_RELOC_HI16 = 4, llvm::MachO::PPC_RELOC_LO16 = 5,
  llvm::MachO::PPC_RELOC_HA16 = 6, llvm::MachO::PPC_RELOC_LO14 = 7, llvm::MachO::PPC_RELOC_SECTDIFF = 8, llvm::MachO::PPC_RELOC_PB_LA_PTR = 9,
  llvm::MachO::PPC_RELOC_HI16_SECTDIFF = 10, llvm::MachO::PPC_RELOC_LO16_SECTDIFF = 11, llvm::MachO::PPC_RELOC_HA16_SECTDIFF = 12, llvm::MachO::PPC_RELOC_JBSR = 13,
  llvm::MachO::PPC_RELOC_LO14_SECTDIFF = 14, llvm::MachO::PPC_RELOC_LOCAL_SECTDIFF = 15, llvm::MachO::ARM_RELOC_VANILLA = GENERIC_RELOC_VANILLA, llvm::MachO::ARM_RELOC_PAIR = GENERIC_RELOC_PAIR,
  llvm::MachO::ARM_RELOC_SECTDIFF = GENERIC_RELOC_SECTDIFF, llvm::MachO::ARM_RELOC_LOCAL_SECTDIFF = 3, llvm::MachO::ARM_RELOC_PB_LA_PTR = 4, llvm::MachO::ARM_RELOC_BR24 = 5,
  llvm::MachO::ARM_THUMB_RELOC_BR22 = 6, llvm::MachO::ARM_THUMB_32BIT_BRANCH = 7, llvm::MachO::ARM_RELOC_HALF = 8, llvm::MachO::ARM_RELOC_HALF_SECTDIFF = 9,
  llvm::MachO::X86_64_RELOC_UNSIGNED = 0, llvm::MachO::X86_64_RELOC_SIGNED = 1, llvm::MachO::X86_64_RELOC_BRANCH = 2, llvm::MachO::X86_64_RELOC_GOT_LOAD = 3,
  llvm::MachO::X86_64_RELOC_GOT = 4, llvm::MachO::X86_64_RELOC_SUBTRACTOR = 5, llvm::MachO::X86_64_RELOC_SIGNED_1 = 6, llvm::MachO::X86_64_RELOC_SIGNED_2 = 7,
  llvm::MachO::X86_64_RELOC_SIGNED_4 = 8, llvm::MachO::X86_64_RELOC_TLV = 9
}
 
enum  { llvm::MachO::VM_PROT_READ = 0x1, llvm::MachO::VM_PROT_WRITE = 0x2, llvm::MachO::VM_PROT_EXECUTE = 0x4 }
 
enum  llvm::MachO::CPUType {
  llvm::MachO::CPU_TYPE_ANY = -1, llvm::MachO::CPU_TYPE_X86 = 7, llvm::MachO::CPU_TYPE_I386 = CPU_TYPE_X86, llvm::MachO::CPU_TYPE_X86_64 = CPU_TYPE_X86 | CPU_ARCH_ABI64,
  llvm::MachO::CPU_TYPE_MC98000 = 10, llvm::MachO::CPU_TYPE_ARM = 12, llvm::MachO::CPU_TYPE_SPARC = 14, llvm::MachO::CPU_TYPE_POWERPC = 18,
  llvm::MachO::CPU_TYPE_POWERPC64 = CPU_TYPE_POWERPC | CPU_ARCH_ABI64
}
 
enum  llvm::MachO::CPUSubTypeX86 {
  llvm::MachO::CPU_SUBTYPE_I386_ALL = 3, llvm::MachO::CPU_SUBTYPE_386 = 3, llvm::MachO::CPU_SUBTYPE_486 = 4, llvm::MachO::CPU_SUBTYPE_486SX = 0x84,
  llvm::MachO::CPU_SUBTYPE_586 = 5, llvm::MachO::CPU_SUBTYPE_PENT = CPU_SUBTYPE_586, llvm::MachO::CPU_SUBTYPE_PENTPRO = 0x16, llvm::MachO::CPU_SUBTYPE_PENTII_M3 = 0x36,
  llvm::MachO::CPU_SUBTYPE_PENTII_M5 = 0x56, llvm::MachO::CPU_SUBTYPE_CELERON = 0x67, llvm::MachO::CPU_SUBTYPE_CELERON_MOBILE = 0x77, llvm::MachO::CPU_SUBTYPE_PENTIUM_3 = 0x08,
  llvm::MachO::CPU_SUBTYPE_PENTIUM_3_M = 0x18, llvm::MachO::CPU_SUBTYPE_PENTIUM_3_XEON = 0x28, llvm::MachO::CPU_SUBTYPE_PENTIUM_M = 0x09, llvm::MachO::CPU_SUBTYPE_PENTIUM_4 = 0x0a,
  llvm::MachO::CPU_SUBTYPE_PENTIUM_4_M = 0x1a, llvm::MachO::CPU_SUBTYPE_ITANIUM = 0x0b, llvm::MachO::CPU_SUBTYPE_ITANIUM_2 = 0x1b, llvm::MachO::CPU_SUBTYPE_XEON = 0x0c,
  llvm::MachO::CPU_SUBTYPE_XEON_MP = 0x1c, llvm::MachO::CPU_SUBTYPE_X86_ALL = 3, llvm::MachO::CPU_SUBTYPE_X86_64_ALL = 3, llvm::MachO::CPU_SUBTYPE_X86_ARCH1 = 4,
  llvm::MachO::CPU_SUBTYPE_X86_64_H = 8
}
 
enum  { llvm::MachO::CPU_SUBTYPE_INTEL_FAMILY_MAX = 15, llvm::MachO::CPU_SUBTYPE_INTEL_MODEL_ALL = 0 }
 
enum  llvm::MachO::CPUSubTypeARM {
  llvm::MachO::CPU_SUBTYPE_ARM_ALL = 0, llvm::MachO::CPU_SUBTYPE_ARM_V4T = 5, llvm::MachO::CPU_SUBTYPE_ARM_V6 = 6, llvm::MachO::CPU_SUBTYPE_ARM_V5 = 7,
  llvm::MachO::CPU_SUBTYPE_ARM_V5TEJ = 7, llvm::MachO::CPU_SUBTYPE_ARM_XSCALE = 8, llvm::MachO::CPU_SUBTYPE_ARM_V7 = 9, llvm::MachO::CPU_SUBTYPE_ARM_V7F = 10,
  llvm::MachO::CPU_SUBTYPE_ARM_V7S = 11, llvm::MachO::CPU_SUBTYPE_ARM_V7K = 12, llvm::MachO::CPU_SUBTYPE_ARM_V6M = 14, llvm::MachO::CPU_SUBTYPE_ARM_V7M = 15,
  llvm::MachO::CPU_SUBTYPE_ARM_V7EM = 16
}
 
enum  llvm::MachO::CPUSubTypeSPARC { llvm::MachO::CPU_SUBTYPE_SPARC_ALL = 0 }
 
enum  llvm::MachO::CPUSubTypePowerPC {
  llvm::MachO::CPU_SUBTYPE_POWERPC_ALL = 0, llvm::MachO::CPU_SUBTYPE_POWERPC_601 = 1, llvm::MachO::CPU_SUBTYPE_POWERPC_602 = 2, llvm::MachO::CPU_SUBTYPE_POWERPC_603 = 3,
  llvm::MachO::CPU_SUBTYPE_POWERPC_603e = 4, llvm::MachO::CPU_SUBTYPE_POWERPC_603ev = 5, llvm::MachO::CPU_SUBTYPE_POWERPC_604 = 6, llvm::MachO::CPU_SUBTYPE_POWERPC_604e = 7,
  llvm::MachO::CPU_SUBTYPE_POWERPC_620 = 8, llvm::MachO::CPU_SUBTYPE_POWERPC_750 = 9, llvm::MachO::CPU_SUBTYPE_POWERPC_7400 = 10, llvm::MachO::CPU_SUBTYPE_POWERPC_7450 = 11,
  llvm::MachO::CPU_SUBTYPE_POWERPC_970 = 100, llvm::MachO::CPU_SUBTYPE_MC980000_ALL = CPU_SUBTYPE_POWERPC_ALL, llvm::MachO::CPU_SUBTYPE_MC98601 = CPU_SUBTYPE_POWERPC_601
}
 

Functions

enum llvm::MachO::LLVM_ENUM_INT_TYPE (uint32_t)
 
static uint16_t llvm::MachO::GET_LIBRARY_ORDINAL (uint16_t n_desc)
 
static void llvm::MachO::SET_LIBRARY_ORDINAL (uint16_t &n_desc, uint8_t ordinal)
 
static uint8_t llvm::MachO::GET_COMM_ALIGN (uint16_t n_desc)
 
static void llvm::MachO::SET_COMM_ALIGN (uint16_t &n_desc, uint8_t align)
 
static int llvm::MachO::CPU_SUBTYPE_INTEL (int Family, int Model)
 
static int llvm::MachO::CPU_SUBTYPE_INTEL_FAMILY (CPUSubTypeX86 ST)
 
static int llvm::MachO::CPU_SUBTYPE_INTEL_MODEL (CPUSubTypeX86 ST)