-/** Snapshotting calloc implementation for user programs. */
-void * calloc( size_t num, size_t size ){
- if (mySpace)
- return mspace_calloc( mySpace, num, size );
- else {
- void *tmp=HandleEarlyAllocationRequest( size * num );
- std::memset( tmp, 0, size * num );
- return tmp;
+void init_memory_ops()
+{
+ if (!real_memcpy) {
+ real_memcpy = (void * (*)(void * dst, const void *src, size_t n)) 1;
+ real_memcpy = (void * (*)(void * dst, const void *src, size_t n))dlsym(RTLD_NEXT, "memcpy");
+ }
+ if (!real_memmove) {
+ real_memmove = (void * (*)(void * dst, const void *src, size_t n)) 1;
+ real_memmove = (void * (*)(void * dst, const void *src, size_t n))dlsym(RTLD_NEXT, "memmove");
+ }
+ if (!real_memset) {
+ real_memset = (void * (*)(void * dst, int c, size_t n)) 1;
+ real_memset = (void * (*)(void * dst, int c, size_t n))dlsym(RTLD_NEXT, "memset");
+ }
+ if (!real_bzero) {
+ real_bzero = (void (*)(void * dst, size_t len)) 1;
+ real_bzero = (void (*)(void * dst, size_t len))dlsym(RTLD_NEXT, "bzero");