#ifdef SHLIB
#include "shlib.h"
#endif
#include "stdlib.h"
#include "stuff/bool.h"
#include "mach-o/dyld.h"
void
_dyld_lookup_and_bind(
const char *symbol_name,
unsigned long *address,
void **module)
{
static void (*p)(const char *, unsigned long *, void **) = NULL;
if(p == NULL)
_dyld_func_lookup("__dyld_lookup_and_bind", (unsigned long *)&p);
p(symbol_name, address, module);
}
void
_dyld_lookup_and_bind_with_hint(
const char *symbol_name,
const char *library_name_hint,
unsigned long *address,
void **module)
{
static void (*p)(const char *, const char *,
unsigned long *, void **) = NULL;
if(p == NULL)
_dyld_func_lookup("__dyld_lookup_and_bind_with_hint",
(unsigned long *)&p);
p(symbol_name, library_name_hint, address, module);
}
void
_dyld_lookup_and_bind_objc(
const char *symbol_name,
unsigned long *address,
void **module)
{
static void (*p)(const char *, unsigned long *, void **) = NULL;
if(p == NULL)
_dyld_func_lookup("__dyld_lookup_and_bind_objc",
(unsigned long *)&p);
p(symbol_name, address, module);
}
void
_dyld_lookup_and_bind_fully(
const char *symbol_name,
unsigned long *address,
void **module)
{
static void (*p)(const char *, unsigned long *, void **) = NULL;
if(p == NULL)
_dyld_func_lookup("__dyld_lookup_and_bind_fully",
(unsigned long *)&p);
p(symbol_name, address, module);
}
enum bool
_dyld_bind_fully_image_containing_address(
unsigned long *address)
{
static enum bool (*p)(unsigned long *) = NULL;
if(p == NULL)
_dyld_func_lookup("__dyld_bind_fully_image_containing_address",
(unsigned long *)&p);
return(p(address));
}