LLVM API Documentation

Classes | Enumerations
llvm::object::macho Namespace Reference

Format information for Mach object files. More...

Classes

struct  Header
 Header common to all Mach object files. More...
struct  Header64Ext
 Extended header for 64-bit object files. More...
struct  LoadCommand
 Load command structure. More...
struct  SegmentLoadCommand
struct  Segment64LoadCommand
struct  SymtabLoadCommand
struct  DysymtabLoadCommand
struct  LinkeditDataLoadCommand
struct  LinkerOptionsLoadCommand
struct  Section
struct  Section64
struct  SymbolTableEntry
struct  Symbol64TableEntry
struct  DataInCodeTableEntry
struct  IndirectSymbolTableEntry
struct  RelocationEntry

Enumerations

enum  StructureSizes {
  Header32Size = 28, Header64Size = 32, SegmentLoadCommand32Size = 56, SegmentLoadCommand64Size = 72,
  Section32Size = 68, Section64Size = 80, SymtabLoadCommandSize = 24, DysymtabLoadCommandSize = 80,
  Nlist32Size = 12, Nlist64Size = 16, RelocationInfoSize = 8, LinkeditLoadCommandSize = 16
}
 Constants for structure sizes. More...
enum  HeaderMagic { HM_Object32 = 0xFEEDFACE, HM_Object64 = 0xFEEDFACF, HM_Universal = 0xCAFEBABE }
 Constants for header magic field. More...
enum  HeaderFileType { HFT_Object = 0x1 }
enum  HeaderFlags { HF_SubsectionsViaSymbols = 0x2000 }
enum  LoadCommandType {
  LCT_Segment = 0x1, LCT_Symtab = 0x2, LCT_Dysymtab = 0xb, LCT_Segment64 = 0x19,
  LCT_UUID = 0x1b, LCT_CodeSignature = 0x1d, LCT_SegmentSplitInfo = 0x1e, LCT_FunctionStarts = 0x26,
  LCT_DataInCode = 0x29, LCT_LinkerOptions = 0x2D
}
enum  SymbolTypeType { STT_Undefined = 0x00, STT_Absolute = 0x02, STT_Section = 0x0e }
enum  SymbolTypeFlags { STF_StabsEntryMask = 0xe0, STF_TypeMask = 0x0e, STF_External = 0x01, STF_PrivateExtern = 0x10 }
enum  IndirectSymbolFlags { ISF_Local = 0x80000000, ISF_Absolute = 0x40000000 }
enum  RelocationFlags { RF_Scattered = 0x80000000 }
 RelocationFlags - Special flags for addresses. More...
enum  RelocationInfoType { RIT_Vanilla = 0, RIT_Pair = 1, RIT_Difference = 2 }
 Common relocation info types. More...
enum  RelocationInfoType_Generic { RIT_Generic_PreboundLazyPointer = 3, RIT_Generic_LocalDifference = 4, RIT_Generic_TLV = 5 }
enum  RelocationInfoTypeX86_64 {
  RIT_X86_64_Unsigned = 0, RIT_X86_64_Signed = 1, RIT_X86_64_Branch = 2, RIT_X86_64_GOTLoad = 3,
  RIT_X86_64_GOT = 4, RIT_X86_64_Subtractor = 5, RIT_X86_64_Signed1 = 6, RIT_X86_64_Signed2 = 7,
  RIT_X86_64_Signed4 = 8, RIT_X86_64_TLV = 9
}
 X86_64 uses its own relocation types. More...
enum  RelocationInfoTypeARM {
  RIT_ARM_LocalDifference = 3, RIT_ARM_PreboundLazyPointer = 4, RIT_ARM_Branch24Bit = 5, RIT_ARM_ThumbBranch22Bit = 6,
  RIT_ARM_ThumbBranch32Bit = 7, RIT_ARM_Half = 8, RIT_ARM_HalfDifference = 9
}
 ARM uses its own relocation types. More...
Section Data
enum  SectionFlags { SF_PureInstructions = 0x80000000 }
Data-in-code Table Entry
enum  DataRegionType { Data = 1, JumpTable8, JumpTable16, JumpTable32 }

Detailed Description

Format information for Mach object files.


Enumeration Type Documentation

Enumerator:
Data 
JumpTable8 
JumpTable16 
JumpTable32 

Definition at line 313 of file MachOFormat.h.

Enumerator:
HFT_Object 

Definition at line 134 of file MachOFormat.h.

Enumerator:
HF_SubsectionsViaSymbols 

Definition at line 138 of file MachOFormat.h.

Constants for header magic field.

Enumerator:
HM_Object32 

32-bit mach object file

HM_Object64 

64-bit mach object file

HM_Universal 

Universal object file.

Definition at line 111 of file MachOFormat.h.

IndirectSymbolFlags - Flags for encoding special values in the indirect symbol entry.

Enumerator:
ISF_Local 
ISF_Absolute 

Definition at line 358 of file MachOFormat.h.

Enumerator:
LCT_Segment 
LCT_Symtab 
LCT_Dysymtab 
LCT_Segment64 
LCT_UUID 
LCT_CodeSignature 
LCT_SegmentSplitInfo 
LCT_FunctionStarts 
LCT_DataInCode 
LCT_LinkerOptions 

Definition at line 142 of file MachOFormat.h.

RelocationFlags - Special flags for addresses.

Enumerator:
RF_Scattered 

Definition at line 364 of file MachOFormat.h.

Common relocation info types.

Enumerator:
RIT_Vanilla 
RIT_Pair 
RIT_Difference 

Definition at line 369 of file MachOFormat.h.

Generic relocation info types, which are shared by some (but not all) platforms.

Enumerator:
RIT_Generic_PreboundLazyPointer 
RIT_Generic_LocalDifference 
RIT_Generic_TLV 

Definition at line 377 of file MachOFormat.h.

ARM uses its own relocation types.

Enumerator:
RIT_ARM_LocalDifference 
RIT_ARM_PreboundLazyPointer 
RIT_ARM_Branch24Bit 
RIT_ARM_ThumbBranch22Bit 
RIT_ARM_ThumbBranch32Bit 
RIT_ARM_Half 
RIT_ARM_HalfDifference 

Definition at line 399 of file MachOFormat.h.

X86_64 uses its own relocation types.

Enumerator:
RIT_X86_64_Unsigned 
RIT_X86_64_Signed 
RIT_X86_64_Branch 
RIT_X86_64_GOTLoad 
RIT_X86_64_GOT 
RIT_X86_64_Subtractor 
RIT_X86_64_Signed1 
RIT_X86_64_Signed2 
RIT_X86_64_Signed4 
RIT_X86_64_TLV 

Definition at line 384 of file MachOFormat.h.

Enumerator:
SF_PureInstructions 

Definition at line 252 of file MachOFormat.h.

Constants for structure sizes.

Enumerator:
Header32Size 
Header64Size 
SegmentLoadCommand32Size 
SegmentLoadCommand64Size 
Section32Size 
Section64Size 
SymtabLoadCommandSize 
DysymtabLoadCommandSize 
Nlist32Size 
Nlist64Size 
RelocationInfoSize 
LinkeditLoadCommandSize 

Definition at line 95 of file MachOFormat.h.

Enumerator:
STF_StabsEntryMask 
STF_TypeMask 
STF_External 
STF_PrivateExtern 

Definition at line 346 of file MachOFormat.h.

Enumerator:
STT_Undefined 
STT_Absolute 
STT_Section 

Definition at line 340 of file MachOFormat.h.