#include <mach-o/dyld.h>

mach-o/dyld.h

includes: stddef.h, stdint.h, stdbool.h, mach-o/loader.h, Availability.h, TargetConditionals.h
49 functions · 21 macros · 7 typedefs · 4 enums · 1 struct

macroDYLD_DRIVERKIT_UNAVAILABLE

#define DYLD_DRIVERKIT_UNAVAILABLE __API_UNAVAILABLE(driverkit)

macroDYLD_EXCLAVEKIT_UNAVAILABLE

#define DYLD_EXCLAVEKIT_UNAVAILABLE 

function_dyld_image_count

__API_AVAILABLE(macos(10.1), ios(2.0))
extern uint32_t _dyld_image_count(void)
The following functions allow you to iterate through all loaded images. This is not a thread safe operation. Another thread can add or remove an image during the iteration. Many uses of these routines can be replace by a call to dladdr() which will return the mach_header and name of an image, given an address in the image. dladdr() is thread safe.

function_dyld_get_image_header

__API_AVAILABLE(macos(10.1), ios(2.0))
extern const struct mach_header* _dyld_get_image_header(uint32_t image_index)

function_dyld_get_image_vmaddr_slide

__API_AVAILABLE(macos(10.1), ios(2.0))
extern intptr_t _dyld_get_image_vmaddr_slide(uint32_t image_index)

function_dyld_get_image_name

__API_AVAILABLE(macos(10.1), ios(2.0))
extern const char* _dyld_get_image_name(uint32_t image_index)

function_dyld_register_func_for_add_image

__API_AVAILABLE(macos(10.1), ios(2.0))
extern void _dyld_register_func_for_add_image(
	void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide)
)
The following functions allow you to install callbacks which will be called by dyld whenever an image is loaded or unloaded. During a call to _dyld_register_func_for_add_image() the callback func is called for every existing image. Later, it is called as each new image is loaded and bound (but initializers not yet run). The callback registered with _dyld_register_func_for_remove_image() is called after any terminators in an image are run and before the image is un-memory-mapped.

function_dyld_register_func_for_remove_image

__API_AVAILABLE(macos(10.1), ios(2.0))
extern void _dyld_register_func_for_remove_image(
	void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide)
)

functionNSVersionOfRunTimeLibrary

__API_AVAILABLE(macos(10.1), ios(2.0))
extern int32_t NSVersionOfRunTimeLibrary(const char* libraryName)
NSVersionOfRunTimeLibrary() returns the current_version number of the currently dylib specifed by the libraryName. The libraryName parameter would be "bar" for /path/libbar.3.dylib and "Foo" for /path/Foo.framework/Versions/A/Foo. It returns -1 if no such library is loaded.

functionNSVersionOfLinkTimeLibrary

__API_AVAILABLE(macos(10.1), ios(2.0))
extern int32_t NSVersionOfLinkTimeLibrary(const char* libraryName)
NSVersionOfLinkTimeLibrary() returns the current_version number that the main executable was linked against at build time. The libraryName parameter would be "bar" for /path/libbar.3.dylib and "Foo" for /path/Foo.framework/Versions/A/Foo. It returns -1 if the main executable did not link against the specified library.

function_NSGetExecutablePath

__API_AVAILABLE(macos(10.2), ios(2.0))
extern int _NSGetExecutablePath(char* buf, uint32_t* bufsize)
_NSGetExecutablePath() copies the path of the main executable into the buffer. The bufsize parameter should initially be the size of the buffer. The function returns 0 if the path was successfully copied, and *bufsize is left unchanged. It returns -1 if the buffer is not large enough, and *bufsize is set to the size required. Note that _NSGetExecutablePath will return "a path" to the executable not a "real path" to the executable. That is the path may be a symbolic link and not the real file. With deep directories the total bufsize needed could be more than MAXPATHLEN.

function_tlv_atexit

__API_AVAILABLE(macos(10.10), ios(8.0))
extern void _tlv_atexit(void (*termFunc)(void* objAddr), void* objAddr)
Registers a function to be called when the current thread terminates. Called by c++ compiler to implement destructors on thread_local object variables.

function_tlv_bootstrap

__API_AVAILABLE(macos(10.10), ios(8.0)) DYLD_DRIVERKIT_UNAVAILABLE
extern void _tlv_bootstrap(void)
Never called. On-disk thread local variables contain a pointer to this. Once the thread local is prepared, the pointer changes to a real handler such as tlv_get_addr.

function_dyld_shared_cache_contains_path

__API_AVAILABLE(macos(11.0), ios(14.0), watchos(7.0), tvos(14.0)) DYLD_DRIVERKIT_UNAVAILABLE
extern bool _dyld_shared_cache_contains_path(const char* path)
Dylibs that are incorporated into the dyld cache are removed from disk. That means code cannot stat() the file to see if it "exists". This function is like a stat() call that checks if a path is to a dylib that was removed from disk and is incorporated into the active dyld cache.

macroENUM_DYLD_BOOL

#define ENUM_DYLD_BOOL 

enumDYLD_BOOL

underlying type unsigned int
FALSE0
TRUE1

enumNSObjectFileImageReturnCode

Object file image API
underlying type unsigned int
NSObjectFileImageFailure0for this a message is printed on stderr
NSObjectFileImageSuccess1
NSObjectFileImageInappropriateFile2
NSObjectFileImageArch3
NSObjectFileImageFormat4for this a message is printed on stderr
NSObjectFileImageAccess5

typedefNSObjectFileImageReturnCode

typedef enum NSObjectFileImageReturnCode NSObjectFileImageReturnCode;

typedefNSObjectFileImage

typedef struct __NSObjectFileImage* NSObjectFileImage

functionNSCreateObjectFileImageFromFile

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlopen()")
extern NSObjectFileImageReturnCode NSCreateObjectFileImageFromFile(
	const char* pathName,
	NSObjectFileImage *objectFileImage
)
deprecated
NSObjectFileImage can only be used with MH_BUNDLE files

functionNSCreateObjectFileImageFromMemory

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern NSObjectFileImageReturnCode NSCreateObjectFileImageFromMemory(
	const void *address,
	size_t size,
	NSObjectFileImage *objectFileImage
)
deprecated

functionNSDestroyObjectFileImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlclose()")
extern bool NSDestroyObjectFileImage(NSObjectFileImage objectFileImage)
deprecated

functionNSSymbolDefinitionCountInObjectFileImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern uint32_t NSSymbolDefinitionCountInObjectFileImage(
	NSObjectFileImage objectFileImage
)
deprecated

functionNSSymbolDefinitionNameInObjectFileImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern const char* NSSymbolDefinitionNameInObjectFileImage(
	NSObjectFileImage objectFileImage,
	uint32_t ordinal
)
deprecated

functionNSSymbolReferenceCountInObjectFileImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern uint32_t NSSymbolReferenceCountInObjectFileImage(NSObjectFileImage objectFileImage)
deprecated

functionNSSymbolReferenceNameInObjectFileImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern const char* NSSymbolReferenceNameInObjectFileImage(
	NSObjectFileImage objectFileImage,
	uint32_t ordinal,
	bool *tentative_definition
)
deprecated

functionNSIsSymbolDefinedInObjectFileImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlsym()")
extern bool NSIsSymbolDefinedInObjectFileImage(
	NSObjectFileImage objectFileImage,
	const char* symbolName
)
deprecated

functionNSGetSectionDataInObjectFileImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "getsectiondata()")
extern void* NSGetSectionDataInObjectFileImage(
	NSObjectFileImage objectFileImage,
	const char* segmentName,
	const char* sectionName,
	size_t *size
)
deprecated

typedefNSModule

typedef struct __NSModule* NSModule

functionNSNameOfModule

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern const char* NSNameOfModule(NSModule m)
deprecated

functionNSLibraryNameForModule

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern const char* NSLibraryNameForModule(NSModule m)
deprecated

functionNSLinkModule

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlopen()")
extern NSModule NSLinkModule(
	NSObjectFileImage objectFileImage,
	const char* moduleName,
	uint32_t options
)
deprecated

macroNSLINKMODULE_OPTION_NONE

#define NSLINKMODULE_OPTION_NONE 0x0

macroNSLINKMODULE_OPTION_BINDNOW

#define NSLINKMODULE_OPTION_BINDNOW 0x1

macroNSLINKMODULE_OPTION_PRIVATE

#define NSLINKMODULE_OPTION_PRIVATE 0x2

macroNSLINKMODULE_OPTION_RETURN_ON_ERROR

#define NSLINKMODULE_OPTION_RETURN_ON_ERROR 0x4

macroNSLINKMODULE_OPTION_DONT_CALL_MOD_INIT_ROUTINES

#define NSLINKMODULE_OPTION_DONT_CALL_MOD_INIT_ROUTINES 0x8

macroNSLINKMODULE_OPTION_TRAILING_PHYS_NAME

#define NSLINKMODULE_OPTION_TRAILING_PHYS_NAME 0x10

functionNSUnLinkModule

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern bool NSUnLinkModule(NSModule module, uint32_t options)
deprecated

macroNSUNLINKMODULE_OPTION_NONE

#define NSUNLINKMODULE_OPTION_NONE 0x0

macroNSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED

#define NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED 0x1

macroNSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES

#define NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES 0x2

typedefNSSymbol

symbol API
typedef struct __NSSymbol* NSSymbol

functionNSIsSymbolNameDefined

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlsym()")
extern bool NSIsSymbolNameDefined(const char* symbolName)
deprecated

functionNSIsSymbolNameDefinedWithHint

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlsym()")
extern bool NSIsSymbolNameDefinedWithHint(
	const char* symbolName,
	const char* libraryNameHint
)
deprecated

functionNSIsSymbolNameDefinedInImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlsym()")
extern bool NSIsSymbolNameDefinedInImage(
	const struct mach_header* image,
	const char* symbolName
)
deprecated

functionNSLookupAndBindSymbol

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlsym()")
extern NSSymbol NSLookupAndBindSymbol(const char* symbolName)
deprecated

functionNSLookupAndBindSymbolWithHint

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlsym()")
extern NSSymbol NSLookupAndBindSymbolWithHint(
	const char* symbolName,
	const char* libraryNameHint
)
deprecated

functionNSLookupSymbolInModule

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlsym()")
extern NSSymbol NSLookupSymbolInModule(NSModule module, const char* symbolName)
deprecated

functionNSLookupSymbolInImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlsym()")
extern NSSymbol NSLookupSymbolInImage(
	const struct mach_header* image,
	const char* symbolName,
	uint32_t options
)
deprecated

macroNSLOOKUPSYMBOLINIMAGE_OPTION_BIND

#define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND 0x0

macroNSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW

#define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW 0x1

macroNSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY

#define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY 0x2

macroNSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR

#define NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR 0x4

functionNSNameOfSymbol

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern const char* NSNameOfSymbol(NSSymbol symbol)
deprecated

functionNSAddressOfSymbol

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlsym()")
extern void * NSAddressOfSymbol(NSSymbol symbol)
deprecated

functionNSModuleForSymbol

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dladdr()")
extern NSModule NSModuleForSymbol(NSSymbol symbol)
deprecated

enumNSLinkEditErrors

error handling API
underlying type unsigned int
NSLinkEditFileAccessError0
NSLinkEditFileFormatError1
NSLinkEditMachResourceError2
NSLinkEditUnixResourceError3
NSLinkEditOtherError4
NSLinkEditWarningError5
NSLinkEditMultiplyDefinedError6
NSLinkEditUndefinedError7

typedefNSLinkEditErrors

typedef enum NSLinkEditErrors NSLinkEditErrors;

enumNSOtherErrorNumbers

For the NSLinkEditErrors value NSLinkEditOtherError these are the values passed to the link edit error handler as the errorNumber (what would be an errno value for NSLinkEditUnixResourceError or a kern_return_t value for NSLinkEditMachResourceError).
underlying type unsigned int
NSOtherErrorRelocation0
NSOtherErrorLazyBind1
NSOtherErrorIndrLoop2
NSOtherErrorLazyInit3
NSOtherErrorInvalidArgs4

typedefNSOtherErrorNumbers

typedef enum NSOtherErrorNumbers NSOtherErrorNumbers;

functionNSLinkEditError

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlerror()")
extern void NSLinkEditError(
	NSLinkEditErrors *c,
	int *errorNumber,
	const char** fileName,
	const char** errorString
)
deprecated

structNSLinkEditErrorHandlers

size 24, align 8
void (*)(const char *)undefined
NSModule (*)(NSSymbol, NSModule, NSModule)multiple
void (*)(NSLinkEditErrors, int, const char *, const char *)linkEdit

typedefNSLinkEditErrorHandlers

typedef struct NSLinkEditErrorHandlers NSLinkEditErrorHandlers;

functionNSInstallLinkEditErrorHandlers

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "")
extern void NSInstallLinkEditErrorHandlers(const NSLinkEditErrorHandlers *handlers)
deprecated

functionNSAddLibrary

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlopen()")
extern bool NSAddLibrary(const char* pathName)
deprecated

functionNSAddLibraryWithSearching

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlopen()")
extern bool NSAddLibraryWithSearching(const char* pathName)
deprecated

functionNSAddImage

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlopen()")
extern const struct mach_header* NSAddImage(const char* image_name, uint32_t options)
deprecated

macroNSADDIMAGE_OPTION_NONE

#define NSADDIMAGE_OPTION_NONE 0x0

macroNSADDIMAGE_OPTION_RETURN_ON_ERROR

#define NSADDIMAGE_OPTION_RETURN_ON_ERROR 0x1

macroNSADDIMAGE_OPTION_WITH_SEARCHING

#define NSADDIMAGE_OPTION_WITH_SEARCHING 0x2

macroNSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED

#define NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED 0x4

macroNSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME

#define NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME 0x8

function_dyld_present

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "always true")
extern bool _dyld_present(void)
deprecated

function_dyld_launched_prebound

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "moot")
extern bool _dyld_launched_prebound(void)
deprecated

function_dyld_all_twolevel_modules_prebound

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.3, 10.5, "moot")
extern bool _dyld_all_twolevel_modules_prebound(void)
deprecated

function_dyld_bind_fully_image_containing_address

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlopen(RTLD_NOW)")
extern bool _dyld_bind_fully_image_containing_address(const void* address)
deprecated

function_dyld_image_containing_address

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.3, 10.5, "dladdr()")
extern bool _dyld_image_containing_address(const void* address)
deprecated

function_dyld_lookup_and_bind

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlsym()")
extern void _dyld_lookup_and_bind(
	const char* symbol_name,
	void **address,
	NSModule* module
)
deprecated

function_dyld_lookup_and_bind_with_hint

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.4, "dlsym()")
extern void _dyld_lookup_and_bind_with_hint(
	const char* symbol_name,
	const char* library_name_hint,
	void** address,
	NSModule* module
)
deprecated

function_dyld_lookup_and_bind_fully

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.1, 10.5, "dlsym()")
extern void _dyld_lookup_and_bind_fully(
	const char* symbol_name,
	void** address,
	NSModule* module
)
deprecated

function_dyld_get_image_header_containing_address

__API_UNAVAILABLE(ios, tvos, watchos) DYLD_DRIVERKIT_UNAVAILABLE DYLD_EXCLAVEKIT_UNAVAILABLE __OSX_DEPRECATED(10.3, 10.5, "dladdr()")
extern const struct mach_header* _dyld_get_image_header_containing_address(
	const void* address
)
deprecated