[][src]Module object::macho

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 macOS header files.

Structs

BuildToolVersion
BuildVersionCommand
DataInCodeEntry
DyldInfoCommand
Dylib
DylibCommand
DylibModule32
DylibModule64
DylibReference
DylibTableOfContents
DylinkerCommand
DysymtabCommand
EncryptionInfoCommand
EncryptionInfoCommand64
EntryPointCommand
FatArch32
FatArch64
FatHeader
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
RoutinesCommand
RoutinesCommand_64
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 discribed 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_486SX
CPU_SUBTYPE_586
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_V4T
CPU_SUBTYPE_ARM_V5TEJ
CPU_SUBTYPE_ARM_V6
CPU_SUBTYPE_ARM_V6M

Not meant to be run under xnu

CPU_SUBTYPE_ARM_V7
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_V8
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_MC68030_ONLY
CPU_SUBTYPE_MC68040
CPU_SUBTYPE_MC88000_ALL
CPU_SUBTYPE_MC88100
CPU_SUBTYPE_MC88110
CPU_SUBTYPE_MC98000_ALL
CPU_SUBTYPE_MC98601
CPU_SUBTYPE_MIPS_ALL
CPU_SUBTYPE_MIPS_R2000
CPU_SUBTYPE_MIPS_R2000A

pmax

CPU_SUBTYPE_MIPS_R2300
CPU_SUBTYPE_MIPS_R2600
CPU_SUBTYPE_MIPS_R2800
CPU_SUBTYPE_MIPS_R3000
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_3_M
CPU_SUBTYPE_PENTIUM_3_XEON
CPU_SUBTYPE_PENTIUM_4
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_603E
CPU_SUBTYPE_POWERPC_603EV
CPU_SUBTYPE_POWERPC_604
CPU_SUBTYPE_POWERPC_604E
CPU_SUBTYPE_POWERPC_620
CPU_SUBTYPE_POWERPC_750
CPU_SUBTYPE_POWERPC_970
CPU_SUBTYPE_POWERPC_7400
CPU_SUBTYPE_POWERPC_7450
CPU_SUBTYPE_POWERPC_ALL
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 discribed 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_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
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 staticly link edited again

MH_DYLIB

dynamically bound shared library

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_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
MH_NOFIXPREBINDING

do not have dyld notify the prebinding agent about this executable

MH_NOMULTIDEFS

this umbrella guarantees no multiple defintions 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

The external symbols listed in the nlist symbol table do not include all the symbols listed in the dyld info.

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

coalesed symbol is a weak definition

N_WEAK_REF

symbol is weak referenced

PLATFORM_BRIDGEOS
PLATFORM_IOS
PLATFORM_IOSMAC
PLATFORM_IOSSIMULATOR
PLATFORM_MACOS
PLATFORM_TVOS
PLATFORM_TVOSSIMULATOR
PLATFORM_WATCHOS
PLATFORM_WATCHOSSIMULATOR
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 extened 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_LO14_SECTDIFF
PPC_RELOC_LO16

a PAIR follows with the high half

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 discribed 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) modifing 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_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