#include <mach-o/dyld.h>
mach-o/dyld.h
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.
macroENUM_DYLD_BOOL
#define ENUM_DYLD_BOOL
enumDYLD_BOOL
| FALSE | 0 | |
| TRUE | 1 |
enumNSObjectFileImageReturnCode
Object file image API
| NSObjectFileImageFailure | 0 | for this a message is printed on stderr |
| NSObjectFileImageSuccess | 1 | |
| NSObjectFileImageInappropriateFile | 2 | |
| NSObjectFileImageArch | 3 | |
| NSObjectFileImageFormat | 4 | for this a message is printed on stderr |
| NSObjectFileImageAccess | 5 |
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
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
| NSLinkEditFileAccessError | 0 | |
| NSLinkEditFileFormatError | 1 | |
| NSLinkEditMachResourceError | 2 | |
| NSLinkEditUnixResourceError | 3 | |
| NSLinkEditOtherError | 4 | |
| NSLinkEditWarningError | 5 | |
| NSLinkEditMultiplyDefinedError | 6 | |
| NSLinkEditUndefinedError | 7 |
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).
| NSOtherErrorRelocation | 0 | |
| NSOtherErrorLazyBind | 1 | |
| NSOtherErrorIndrLoop | 2 | |
| NSOtherErrorLazyInit | 3 | |
| NSOtherErrorInvalidArgs | 4 |
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
| 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