Module macho

Source
Expand description

Mach-O definitions.

These definitions are independent of read/write support, although we do implement some traits useful for those.

This module is based heavily on header files from MacOSX11.1.sdk.

Structs§

BuildToolVersion
BuildVersionCommand
DataInCodeEntry
DyldCacheHeader
The dyld cache header. Corresponds to struct dyld_cache_header from dyld_cache_format.h. This header has grown over time. Only the fields up to and including dyld_base_address are guaranteed to be present. For all other fields, check the header size before accessing the field. The header size is stored in mapping_offset; the mappings start right after the theader.
DyldCacheImageInfo
Corresponds to struct dyld_cache_image_info from dyld_cache_format.h.
DyldCacheMappingInfo
Corresponds to struct dyld_cache_mapping_info from dyld_cache_format.h.
DyldInfoCommand
DyldSubCacheEntryV1
Added in dyld-940, which shipped with macOS 12 / iOS 15. Originally called dyld_subcache_entry, renamed to dyld_subcache_entry_v1 in dyld-1042.1.
DyldSubCacheEntryV2
Added in dyld-1042.1, which shipped with macOS 13 / iOS 16. Called dyld_subcache_entry as of dyld-1042.1.
Dylib
DylibCommand
DylibModule32
DylibModule64
DylibReference
DylibTableOfContents
DylinkerCommand
DysymtabCommand
EncryptionInfoCommand32
EncryptionInfoCommand64
EntryPointCommand
FatArch32
FatArch64
FatHeader
FilesetEntryCommand
FvmfileCommand
Fvmlib
FvmlibCommand
IdentCommand
LcStr
A variable length string in a load command.
LinkeditDataCommand
LinkerOptionCommand
LoadCommand
Common fields at the start of every load command.
MachHeader32
The 32-bit mach header.
MachHeader64
The 64-bit mach header.
Nlist32
Nlist64
NoteCommand
PrebindCksumCommand
PreboundDylibCommand
Relocation
A relocation entry.
RelocationInfo
RoutinesCommand32
RoutinesCommand64
RpathCommand
ScatteredRelocationInfo
Section32
32-bit section.
Section64
64-bit section.
SegmentCommand32
32-bit segment load command.
SegmentCommand64
64-bit segment load command.
SourceVersionCommand
SubClientCommand
SubFrameworkCommand
SubLibraryCommand
SubUmbrellaCommand
SymsegCommand
SymtabCommand
ThreadCommand
TwolevelHint
TwolevelHintsCommand
UuidCommand
VersionMinCommand

Constants§

ARM64_RELOC_ADDEND
must be followed by PAGE21 or PAGEOFF12
ARM64_RELOC_AUTHENTICATED_POINTER
ARM64_RELOC_BRANCH26
a B/BL instruction with 26-bit displacement
ARM64_RELOC_GOT_LOAD_PAGE21
pc-rel distance to page of GOT slot
ARM64_RELOC_GOT_LOAD_PAGEOFF12
offset within page of GOT slot, scaled by r_length
ARM64_RELOC_PAGE21
pc-rel distance to page of target
ARM64_RELOC_PAGEOFF12
offset within page, scaled by r_length
ARM64_RELOC_POINTER_TO_GOT
for pointers to GOT slots
ARM64_RELOC_SUBTRACTOR
must be followed by a ARM64_RELOC_UNSIGNED
ARM64_RELOC_TLVP_LOAD_PAGE21
pc-rel distance to page of TLVP slot
ARM64_RELOC_TLVP_LOAD_PAGEOFF12
offset within page of TLVP slot, scaled by r_length
ARM64_RELOC_UNSIGNED
for pointers
ARM_RELOC_BR24
24 bit branch displacement (to a word address)
ARM_RELOC_HALF
ARM_RELOC_HALF_SECTDIFF
ARM_RELOC_LOCAL_SECTDIFF
like ARM_RELOC_SECTDIFF, but the symbol referenced was local.
ARM_RELOC_PAIR
the second relocation entry of a pair
ARM_RELOC_PB_LA_PTR
prebound lazy pointer
ARM_RELOC_SECTDIFF
a PAIR follows with subtract symbol value
ARM_RELOC_VANILLA
generic relocation as described above
ARM_THUMB_32BIT_BRANCH
obsolete - a thumb 32-bit branch instruction possibly needing page-spanning branch workaround
ARM_THUMB_RELOC_BR22
22 bit branch displacement (to a half-word address)
BIND_IMMEDIATE_MASK
BIND_OPCODE_ADD_ADDR_ULEB
BIND_OPCODE_DONE
BIND_OPCODE_DO_BIND
BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED
BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB
BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB
BIND_OPCODE_MASK
BIND_OPCODE_SET_ADDEND_SLEB
BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB
BIND_OPCODE_SET_DYLIB_SPECIAL_IMM
BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
BIND_OPCODE_SET_TYPE_IMM
BIND_OPCODE_THREADED
BIND_SPECIAL_DYLIB_FLAT_LOOKUP
BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE
BIND_SPECIAL_DYLIB_SELF
BIND_SPECIAL_DYLIB_WEAK_LOOKUP
BIND_SUBOPCODE_THREADED_APPLY
BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB
BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION
BIND_SYMBOL_FLAGS_WEAK_IMPORT
BIND_TYPE_POINTER
BIND_TYPE_TEXT_ABSOLUTE32
BIND_TYPE_TEXT_PCREL32
CPU_ARCH_ABI64
64 bit ABI
CPU_ARCH_ABI64_32
ABI for 64-bit hardware with 32-bit types; LP32
CPU_ARCH_MASK
mask for architecture bits
CPU_SUBTYPE_386
CPU_SUBTYPE_486
CPU_SUBTYPE_586
CPU_SUBTYPE_486SX
CPU_SUBTYPE_ANY
When selecting a slice, ANY will pick the slice with the best grading for the selected cpu_type_t, unlike the “ALL” subtypes, which are the slices that can run on any hardware for that cpu type.
CPU_SUBTYPE_ARM64E
CPU_SUBTYPE_ARM64_32_ALL
CPU_SUBTYPE_ARM64_32_V8
CPU_SUBTYPE_ARM64_ALL
CPU_SUBTYPE_ARM64_V8
CPU_SUBTYPE_ARM_ALL
CPU_SUBTYPE_ARM_V6
CPU_SUBTYPE_ARM_V7
ARMv7-A and ARMv7-R
CPU_SUBTYPE_ARM_V8
CPU_SUBTYPE_ARM_V4T
CPU_SUBTYPE_ARM_V5TEJ
CPU_SUBTYPE_ARM_V6M
Not meant to be run under xnu
CPU_SUBTYPE_ARM_V7EM
Not meant to be run under xnu
CPU_SUBTYPE_ARM_V7F
Cortex A9
CPU_SUBTYPE_ARM_V7K
CPU_SUBTYPE_ARM_V7M
Not meant to be run under xnu
CPU_SUBTYPE_ARM_V7S
Swift
CPU_SUBTYPE_ARM_V8M
Not meant to be run under xnu
CPU_SUBTYPE_ARM_XSCALE
CPU_SUBTYPE_BIG_ENDIAN
CPU_SUBTYPE_CELERON
CPU_SUBTYPE_CELERON_MOBILE
CPU_SUBTYPE_HPPA_7100LC
CPU_SUBTYPE_HPPA_ALL
CPU_SUBTYPE_I386_ALL
CPU_SUBTYPE_I860_860
CPU_SUBTYPE_I860_ALL
CPU_SUBTYPE_INTEL_FAMILY_MAX
CPU_SUBTYPE_INTEL_MODEL_ALL
CPU_SUBTYPE_ITANIUM
CPU_SUBTYPE_ITANIUM_2
CPU_SUBTYPE_LIB64
64 bit libraries
CPU_SUBTYPE_LITTLE_ENDIAN
CPU_SUBTYPE_MASK
mask for feature flags
CPU_SUBTYPE_MC680X0_ALL
CPU_SUBTYPE_MC68030
CPU_SUBTYPE_MC68040
CPU_SUBTYPE_MC88100
CPU_SUBTYPE_MC88110
CPU_SUBTYPE_MC98601
CPU_SUBTYPE_MC68030_ONLY
CPU_SUBTYPE_MC88000_ALL
CPU_SUBTYPE_MC98000_ALL
CPU_SUBTYPE_MIPS_ALL
CPU_SUBTYPE_MIPS_R2000
CPU_SUBTYPE_MIPS_R2300
CPU_SUBTYPE_MIPS_R2600
CPU_SUBTYPE_MIPS_R2800
CPU_SUBTYPE_MIPS_R3000
CPU_SUBTYPE_MIPS_R2000A
pmax
CPU_SUBTYPE_MIPS_R3000A
3max
CPU_SUBTYPE_MULTIPLE
CPU_SUBTYPE_PENT
CPU_SUBTYPE_PENTII_M3
CPU_SUBTYPE_PENTII_M5
CPU_SUBTYPE_PENTIUM_3
CPU_SUBTYPE_PENTIUM_4
CPU_SUBTYPE_PENTIUM_3_M
CPU_SUBTYPE_PENTIUM_3_XEON
CPU_SUBTYPE_PENTIUM_4_M
CPU_SUBTYPE_PENTIUM_M
CPU_SUBTYPE_PENTPRO
CPU_SUBTYPE_POWERPC_601
CPU_SUBTYPE_POWERPC_602
CPU_SUBTYPE_POWERPC_603
CPU_SUBTYPE_POWERPC_604
CPU_SUBTYPE_POWERPC_620
CPU_SUBTYPE_POWERPC_750
CPU_SUBTYPE_POWERPC_970
CPU_SUBTYPE_POWERPC_603E
CPU_SUBTYPE_POWERPC_603EV
CPU_SUBTYPE_POWERPC_604E
CPU_SUBTYPE_POWERPC_7400
CPU_SUBTYPE_POWERPC_7450
CPU_SUBTYPE_POWERPC_ALL
CPU_SUBTYPE_PTRAUTH_ABI
pointer authentication with versioned ABI
CPU_SUBTYPE_SPARC_ALL
CPU_SUBTYPE_UVAXI
CPU_SUBTYPE_UVAXII
CPU_SUBTYPE_UVAXIII
CPU_SUBTYPE_VAX730
CPU_SUBTYPE_VAX750
CPU_SUBTYPE_VAX780
CPU_SUBTYPE_VAX785
CPU_SUBTYPE_VAX8200
CPU_SUBTYPE_VAX8500
CPU_SUBTYPE_VAX8600
CPU_SUBTYPE_VAX8650
CPU_SUBTYPE_VAX8800
CPU_SUBTYPE_VAX_ALL
CPU_SUBTYPE_X86_64_ALL
CPU_SUBTYPE_X86_64_H
Haswell feature subset
CPU_SUBTYPE_X86_ALL
CPU_SUBTYPE_X86_ARCH1
CPU_SUBTYPE_XEON
CPU_SUBTYPE_XEON_MP
CPU_TYPE_ALPHA
CPU_TYPE_ANY
CPU_TYPE_ARM
CPU_TYPE_ARM64
CPU_TYPE_ARM64_32
CPU_TYPE_HPPA
CPU_TYPE_I860
CPU_TYPE_MC680X0
CPU_TYPE_MC88000
CPU_TYPE_MC98000
CPU_TYPE_MIPS
CPU_TYPE_POWERPC
CPU_TYPE_POWERPC64
CPU_TYPE_SPARC
CPU_TYPE_VAX
CPU_TYPE_X86
CPU_TYPE_X86_64
DICE_KIND_ABS_JUMP_TABLE32
DICE_KIND_DATA
DICE_KIND_JUMP_TABLE8
DICE_KIND_JUMP_TABLE16
DICE_KIND_JUMP_TABLE32
DYNAMIC_LOOKUP_ORDINAL
EXECUTABLE_ORDINAL
EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE
EXPORT_SYMBOL_FLAGS_KIND_MASK
EXPORT_SYMBOL_FLAGS_KIND_REGULAR
EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL
EXPORT_SYMBOL_FLAGS_REEXPORT
EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER
EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION
FAT_CIGAM
NXSwapLong(FAT_MAGIC)
FAT_CIGAM_64
NXSwapLong(FAT_MAGIC_64)
FAT_MAGIC
FAT_MAGIC_64
GENERIC_RELOC_LOCAL_SECTDIFF
GENERIC_RELOC_PAIR
Only follows a GENERIC_RELOC_SECTDIFF
GENERIC_RELOC_PB_LA_PTR
prebound lazy pointer
GENERIC_RELOC_SECTDIFF
GENERIC_RELOC_TLV
thread local variables
GENERIC_RELOC_VANILLA
generic relocation as described above
INDIRECT_SYMBOL_ABS
INDIRECT_SYMBOL_LOCAL
LC_BUILD_VERSION
build for platform min OS version
LC_CODE_SIGNATURE
local of code signature
LC_DATA_IN_CODE
table of non-instructions in __text
LC_DYLD_CHAINED_FIXUPS
used with LinkeditDataCommand
LC_DYLD_ENVIRONMENT
string for dyld to treat like environment variable
LC_DYLD_EXPORTS_TRIE
used with LinkeditDataCommand, payload is trie
LC_DYLD_INFO
compressed dyld information
LC_DYLD_INFO_ONLY
compressed dyld information only
LC_DYLIB_CODE_SIGN_DRS
Code signing DRs copied from linked dylibs
LC_DYSYMTAB
dynamic link-edit symbol table info
LC_ENCRYPTION_INFO
encrypted segment information
LC_ENCRYPTION_INFO_64
64-bit encrypted segment information
LC_FILESET_ENTRY
used with FilesetEntryCommand
LC_FUNCTION_STARTS
compressed table of function start addresses
LC_FVMFILE
fixed VM file inclusion (internal use)
LC_IDENT
object identification info (obsolete)
LC_IDFVMLIB
fixed VM shared library identification
LC_ID_DYLIB
dynamically linked shared lib ident
LC_ID_DYLINKER
dynamic linker identification
LC_LAZY_LOAD_DYLIB
delay load of dylib until first use
LC_LINKER_OPTIMIZATION_HINT
optimization hints in MH_OBJECT files
LC_LINKER_OPTION
linker options in MH_OBJECT files
LC_LOADFVMLIB
load a specified fixed VM shared library
LC_LOAD_DYLIB
load a dynamically linked shared library
LC_LOAD_DYLINKER
load a dynamic linker
LC_LOAD_UPWARD_DYLIB
load upward dylib
LC_LOAD_WEAK_DYLIB
load a dynamically linked shared library that is allowed to be missing (all symbols are weak imported).
LC_MAIN
replacement for LC_UNIXTHREAD
LC_NOTE
arbitrary data included within a Mach-O file
LC_PREBIND_CKSUM
prebind checksum
LC_PREBOUND_DYLIB
modules prebound for a dynamically linked shared library
LC_PREPAGE
prepage command (internal use)
LC_REEXPORT_DYLIB
load and re-export dylib
LC_REQ_DYLD
LC_ROUTINES
image routines
LC_ROUTINES_64
64-bit image routines
LC_RPATH
runpath additions
LC_SEGMENT
segment of this file to be mapped
LC_SEGMENT_64
64-bit segment of this file to be mapped
LC_SEGMENT_SPLIT_INFO
local of info to split segments
LC_SOURCE_VERSION
source version used to build binary
LC_SUB_CLIENT
sub client
LC_SUB_FRAMEWORK
sub framework
LC_SUB_LIBRARY
sub library
LC_SUB_UMBRELLA
sub umbrella
LC_SYMSEG
link-edit gdb symbol table info (obsolete)
LC_SYMTAB
link-edit stab symbol table info
LC_THREAD
thread
LC_TWOLEVEL_HINTS
two-level namespace lookup hints
LC_UNIXTHREAD
unix thread (includes a stack)
LC_UUID
the uuid
LC_VERSION_MIN_IPHONEOS
build for iPhoneOS min OS version
LC_VERSION_MIN_MACOSX
build for MacOSX min OS version
LC_VERSION_MIN_TVOS
build for AppleTV min OS version
LC_VERSION_MIN_WATCHOS
build for Watch min OS version
MAX_LIBRARY_ORDINAL
MAX_SECT
1 thru 255 inclusive
MH_ALLMODSBOUND
indicates that this binary binds to all two-level namespace modules of its dependent libraries. only used when MH_PREBINDABLE and MH_TWOLEVEL are both set.
MH_ALLOW_STACK_EXECUTION
When this bit is set, all stacks in the task will be given stack execution privilege. Only used in MH_EXECUTE filetypes.
MH_APP_EXTENSION_SAFE
The code was linked for use in an application extension.
MH_BINDATLOAD
the object file’s undefined references are bound by the dynamic linker when loaded.
MH_BINDS_TO_WEAK
the final linked image uses weak symbols
MH_BUNDLE
dynamically bound bundle file
MH_CANONICAL
the binary has been canonicalized via the unprebind operation
MH_CIGAM
NXSwapInt(MH_MAGIC)
MH_CIGAM_64
NXSwapInt(MH_MAGIC_64)
MH_CORE
core file
MH_DEAD_STRIPPABLE_DYLIB
Only for use on dylibs. When linking against a dylib that has this bit set, the static linker will automatically not create a LC_LOAD_DYLIB load command to the dylib if no symbols are being referenced from the dylib.
MH_DSYM
companion file with only debug sections
MH_DYLDLINK
the object file is input for the dynamic linker and can’t be statically link edited again
MH_DYLIB
dynamically bound shared library
MH_DYLIB_IN_CACHE
Only for use on dylibs. When this bit is set, the dylib is part of the dyld shared cache, rather than loose in the filesystem.
MH_DYLIB_STUB
shared library stub for static linking only, no section contents
MH_DYLINKER
dynamic link editor
MH_EXECUTE
demand paged executable file
MH_FILESET
set of mach-o’s
MH_FORCE_FLAT
the executable is forcing all images to use flat name space bindings
MH_FVMLIB
fixed VM shared library file
MH_HAS_TLV_DESCRIPTORS
Contains a section of type S_THREAD_LOCAL_VARIABLES
MH_INCRLINK
the object file is the output of an incremental link against a base file and can’t be link edited again
MH_KEXT_BUNDLE
x86_64 kexts
MH_LAZY_INIT
the shared library init routine is to be run lazily via catching memory faults to its writeable segments (obsolete)
MH_MAGIC
the mach magic number
MH_MAGIC_64
the 64-bit mach magic number
MH_NLIST_OUTOFSYNC_WITH_DYLDINFO
The external symbols listed in the nlist symbol table do not include all the symbols listed in the dyld info.
MH_NOFIXPREBINDING
do not have dyld notify the prebinding agent about this executable
MH_NOMULTIDEFS
this umbrella guarantees no multiple definitions of symbols in its sub-images so the two-level namespace hints can always be used.
MH_NOUNDEFS
the object file has no undefined references
MH_NO_HEAP_EXECUTION
When this bit is set, the OS will run the main executable with a non-executable heap even on platforms (e.g. i386) that don’t require it. Only used in MH_EXECUTE filetypes.
MH_NO_REEXPORTED_DYLIBS
When this bit is set on a dylib, the static linker does not need to examine dependent dylibs to see if any are re-exported
MH_OBJECT
relocatable object file
MH_PIE
When this bit is set, the OS will load the main executable at a random address. Only used in MH_EXECUTE filetypes.
MH_PREBINDABLE
the binary is not prebound but can have its prebinding redone. only used when MH_PREBOUND is not set.
MH_PREBOUND
the file has its dynamic undefined references prebound.
MH_PRELOAD
preloaded executable file
MH_ROOT_SAFE
When this bit is set, the binary declares it is safe for use in processes with uid zero
MH_SETUID_SAFE
When this bit is set, the binary declares it is safe for use in processes when issetugid() is true
MH_SIM_SUPPORT
Allow LC_MIN_VERSION_MACOS and LC_BUILD_VERSION load commands with the platforms macOS, iOSMac, iOSSimulator, tvOSSimulator and watchOSSimulator.
MH_SPLIT_SEGS
the file has its read-only and read-write segments split
MH_SUBSECTIONS_VIA_SYMBOLS
safe to divide up the sections into sub-sections via symbols for dead code stripping
MH_TWOLEVEL
the image is using two-level name space bindings
MH_WEAK_DEFINES
the final linked image contains external weak symbols
NO_SECT
symbol is not in any section
N_ABS
absolute, n_sect == NO_SECT
N_ALT_ENTRY
N_ARM_THUMB_DEF
symbol is a Thumb function (ARM)
N_AST
AST file path: name,,NO_SECT,0,0
N_BCOMM
begin common: name,,NO_SECT,0,0
N_BINCL
include file beginning: name,,NO_SECT,0,sum
N_BNSYM
begin nsect sym: 0,,n_sect,0,address
N_DESC_DISCARDED
symbol is discarded
N_ECOML
end common (local name): 0,,n_sect,0,address
N_ECOMM
end common: name,,n_sect,0,0
N_EINCL
include file end: name,,NO_SECT,0,0
N_ENSYM
end nsect sym: 0,,n_sect,0,address
N_ENTRY
alternate entry: name,,n_sect,linenumber,address
N_EXCL
deleted include file: name,,NO_SECT,0,sum
N_EXT
external symbol bit, set for external symbols
N_FNAME
procedure name (f77 kludge): name,,NO_SECT,0,0
N_FUN
procedure: name,,n_sect,linenumber,address
N_GSYM
global symbol: name,,NO_SECT,type,0
N_INDR
indirect
N_LBRAC
left bracket: 0,,NO_SECT,nesting level,address
N_LCSYM
.lcomm symbol: name,,n_sect,type,address
N_LENG
second stab entry with length information
N_LSYM
local sym: name,,NO_SECT,type,offset
N_NO_DEAD_STRIP
symbol is not to be dead stripped
N_OLEVEL
compiler -O level: name,,NO_SECT,0,0
N_OPT
emitted with gcc2_compiled and in gcc source
N_OSO
object file name: name,,0,0,st_mtime
N_PARAMS
compiler parameters: name,,NO_SECT,0,0
N_PBUD
prebound undefined (defined in a dylib)
N_PC
global pascal symbol: name,,NO_SECT,subtype,line
N_PEXT
private external symbol bit
N_PSYM
parameter: name,,NO_SECT,type,offset
N_RBRAC
right bracket: 0,,NO_SECT,nesting level,address
N_REF_TO_WEAK
reference to a weak symbol
N_RSYM
register sym: name,,NO_SECT,type,register
N_SECT
defined in section number n_sect
N_SLINE
src line: 0,,n_sect,linenumber,address
N_SO
source file name: name,,n_sect,0,address
N_SOL
#included file name: name,,n_sect,0,address
N_SSYM
structure elt: name,,NO_SECT,type,struct_offset
N_STAB
if any of these bits set, a symbolic debugging entry
N_STSYM
static symbol: name,,n_sect,type,address
N_SYMBOL_RESOLVER
N_TYPE
mask for the type bits
N_UNDF
undefined, n_sect == NO_SECT
N_VERSION
compiler version: name,,NO_SECT,0,0
N_WEAK_DEF
coalesced symbol is a weak definition
N_WEAK_REF
symbol is weak referenced
PLATFORM_BRIDGEOS
PLATFORM_DRIVERKIT
PLATFORM_IOS
PLATFORM_IOSSIMULATOR
PLATFORM_MACCATALYST
PLATFORM_MACOS
PLATFORM_TVOS
PLATFORM_TVOSSIMULATOR
PLATFORM_WATCHOS
PLATFORM_WATCHOSSIMULATOR
PLATFORM_XROS
PLATFORM_XROSSIMULATOR
PPC_RELOC_BR14
14 bit branch displacement (to a word address)
PPC_RELOC_BR24
24 bit branch displacement (to a word address)
PPC_RELOC_HA16
Same as the RELOC_HI16 except the low 16 bits and the high 16 bits are added together with the low 16 bits sign extended first. This means if bit 15 of the low 16 bits is set the high 16 bits stored in the instruction will be adjusted.
PPC_RELOC_HA16_SECTDIFF
PPC_RELOC_HI16
a PAIR follows with the low half
PPC_RELOC_HI16_SECTDIFF
section difference forms of above. a PAIR
PPC_RELOC_JBSR
PPC_RELOC_LO14
Same as the LO16 except that the low 2 bits are not stored in the instruction and are always zero. This is used in double word load/store instructions.
PPC_RELOC_LO16
a PAIR follows with the high half
PPC_RELOC_LO14_SECTDIFF
PPC_RELOC_LO16_SECTDIFF
follows these with subtract symbol value
PPC_RELOC_LOCAL_SECTDIFF
like PPC_RELOC_SECTDIFF, but the symbol referenced was local.
PPC_RELOC_PAIR
the second relocation entry of a pair
PPC_RELOC_PB_LA_PTR
prebound lazy pointer
PPC_RELOC_SECTDIFF
a PAIR follows with subtract symbol value
PPC_RELOC_VANILLA
generic relocation as described above
REBASE_IMMEDIATE_MASK
REBASE_OPCODE_ADD_ADDR_IMM_SCALED
REBASE_OPCODE_ADD_ADDR_ULEB
REBASE_OPCODE_DONE
REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
REBASE_OPCODE_DO_REBASE_IMM_TIMES
REBASE_OPCODE_DO_REBASE_ULEB_TIMES
REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
REBASE_OPCODE_MASK
REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
REBASE_OPCODE_SET_TYPE_IMM
REBASE_TYPE_POINTER
REBASE_TYPE_TEXT_ABSOLUTE32
REBASE_TYPE_TEXT_PCREL32
REFERENCED_DYNAMICALLY
REFERENCE_FLAG_DEFINED
REFERENCE_FLAG_PRIVATE_DEFINED
REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY
REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY
REFERENCE_FLAG_UNDEFINED_LAZY
REFERENCE_FLAG_UNDEFINED_NON_LAZY
REFERENCE_TYPE
R_ABS
absolute relocation type for Mach-O files
R_SCATTERED
Bit set in Relocation::r_word0 for scattered relocations.
SECTION_ATTRIBUTES
24 section attributes
SECTION_ATTRIBUTES_SYS
system setable attributes
SECTION_ATTRIBUTES_USR
User setable attributes
SECTION_TYPE
256 section types
SECT_BSS
the real uninitialized data section no padding
SECT_COMMON
the section common symbols are allocated in by the link editor
SECT_DATA
the real initialized data section no padding, no bss overlap
SECT_FVMLIB_INIT0
the fvmlib initialization section
SECT_FVMLIB_INIT1
the section following the fvmlib initialization section
SECT_ICON_HEADER
the icon headers
SECT_ICON_TIFF
the icons in tiff format
SECT_OBJC_MODULES
module information
SECT_OBJC_REFS
string table
SECT_OBJC_STRINGS
string table
SECT_OBJC_SYMBOLS
symbol table
SECT_TEXT
the real text part of the text section no headers, and no padding
SEG_DATA
the tradition UNIX data segment
SEG_ICON
the icon segment
SEG_IMPORT
the segment for the self (dyld) modifying code stubs that has read, write and execute permissions
SEG_LINKEDIT
the segment containing all structs created and maintained by the link editor. Created with -seglinkedit option to ld(1) for MH_EXECUTE and FVMLIB file types only
SEG_LINKINFO
the segment overlapping with linkedit containing linking information
SEG_OBJC
objective-C runtime segment
SEG_PAGEZERO
the pagezero segment which has no protections and catches NULL references for MH_EXECUTE files
SEG_TEXT
the tradition UNIX text segment
SEG_UNIXSTACK
the unix stack segment
SELF_LIBRARY_ORDINAL
SG_FVMLIB
this segment is the VM that is allocated by a fixed VM library, for overlap checking in the link editor
SG_HIGHVM
the file contents for this segment is for the high part of the VM space, the low part is zero filled (for stacks in core files)
SG_NORELOC
this segment has nothing that was relocated in it and nothing relocated to it, that is it maybe safely replaced without relocation
SG_PROTECTED_VERSION_1
This segment is protected. If the segment starts at file offset 0, the first page of the segment is not protected. All other pages of the segment are protected.
SG_READ_ONLY
This segment is made read-only after fixups
S_4BYTE_LITERALS
section with only 4 byte literals
S_8BYTE_LITERALS
section with only 8 byte literals
S_16BYTE_LITERALS
section with only 16 byte literals
S_ATTR_DEBUG
a debug section
S_ATTR_EXT_RELOC
section has external relocation entries
S_ATTR_LIVE_SUPPORT
blocks are live if they reference live blocks
S_ATTR_LOC_RELOC
section has local relocation entries
S_ATTR_NO_DEAD_STRIP
no dead stripping
S_ATTR_NO_TOC
section contains coalesced symbols that are not to be in a ranlib table of contents
S_ATTR_PURE_INSTRUCTIONS
section contains only true machine instructions
S_ATTR_SELF_MODIFYING_CODE
Used with i386 code stubs written on by dyld
S_ATTR_SOME_INSTRUCTIONS
section contains some machine instructions
S_ATTR_STRIP_STATIC_SYMS
ok to strip static symbols in this section in files with the MH_DYLDLINK flag
S_COALESCED
section contains symbols that are to be coalesced
S_CSTRING_LITERALS
section with only literal C strings
S_DTRACE_DOF
section contains DTrace Object Format
S_GB_ZEROFILL
zero fill on demand section (that can be larger than 4 gigabytes)
S_INIT_FUNC_OFFSETS
32-bit offsets to initializers
S_INTERPOSING
section with only pairs of function pointers for interposing
S_LAZY_DYLIB_SYMBOL_POINTERS
section with only lazy symbol pointers to lazy loaded dylibs
S_LAZY_SYMBOL_POINTERS
section with only lazy symbol pointers
S_LITERAL_POINTERS
section with only pointers to literals
S_MOD_INIT_FUNC_POINTERS
section with only function pointers for initialization
S_MOD_TERM_FUNC_POINTERS
section with only function pointers for termination
S_NON_LAZY_SYMBOL_POINTERS
section with only non-lazy symbol pointers
S_REGULAR
regular section
S_SYMBOL_STUBS
section with only symbol stubs, byte size of stub in the reserved2 field
S_THREAD_LOCAL_INIT_FUNCTION_POINTERS
functions to call to initialize TLV values
S_THREAD_LOCAL_REGULAR
template of initial values for TLVs
S_THREAD_LOCAL_VARIABLES
TLV descriptors
S_THREAD_LOCAL_VARIABLE_POINTERS
pointers to TLV descriptors
S_THREAD_LOCAL_ZEROFILL
template of initial values for TLVs
S_ZEROFILL
zero fill on demand section
TOOL_CLANG
TOOL_LD
TOOL_SWIFT
VM_PROT_EXECUTE
execute permission
VM_PROT_READ
read permission
VM_PROT_WRITE
write permission
X86_64_RELOC_BRANCH
a CALL/JMP instruction with 32-bit displacement
X86_64_RELOC_GOT
other GOT references
X86_64_RELOC_GOT_LOAD
a MOVQ load of a GOT entry
X86_64_RELOC_SIGNED
for signed 32-bit displacement
X86_64_RELOC_SIGNED_1
for signed 32-bit displacement with a -1 addend
X86_64_RELOC_SIGNED_2
for signed 32-bit displacement with a -2 addend
X86_64_RELOC_SIGNED_4
for signed 32-bit displacement with a -4 addend
X86_64_RELOC_SUBTRACTOR
must be followed by a X86_64_RELOC_UNSIGNED
X86_64_RELOC_TLV
for thread local variables
X86_64_RELOC_UNSIGNED
for absolute addresses

Functions§

cpu_subtype_intel
cpu_subtype_intel_family
cpu_subtype_intel_model