00001 #include <sys/types.h>
00002 #include <dlfcn.h>
00003
00004 extern "C" void * (*mm_malloc)(size_t);
00005 extern "C" void * (*mm_calloc)(size_t,size_t);
00006 extern "C" void * (*mm_realloc)(void*,size_t);
00007 extern "C" void * (*mm_memalign)(size_t,size_t);
00008 extern "C" void * (*mm_valloc)(size_t);
00009 extern "C" void (*mm_free)(void*);
00010 extern "C" void (*mm_cfree)(void*);
00011
00012
00013 extern "C" void initialize_memory_wrapper() {
00014 mm_malloc = (void *(*)(size_t)) dlsym(RTLD_NEXT, "malloc");
00015 mm_realloc = (void *(*)(void*,size_t)) dlsym(RTLD_NEXT, "realloc");
00016 mm_calloc = (void *(*)(size_t,size_t)) dlsym(RTLD_NEXT, "calloc");
00017 mm_memalign = (void *(*)(size_t,size_t)) dlsym(RTLD_NEXT, "memalign");
00018 mm_valloc = (void *(*)(size_t)) dlsym(RTLD_NEXT, "valloc");
00019 mm_free = (void (*)(void*)) dlsym(RTLD_NEXT, "free");
00020 mm_cfree = (void (*)(void*)) dlsym(RTLD_NEXT, "cfree");
00021 }