00001
00002
00003
00004
00005
00006
00007
00008
00009 #if ! CMK_MEMORY_BUILD_OS
00010
00011 #include "memory-gnu.C"
00012 #endif
00013
00014 static int memInit=0;
00015 static int inMemVerbose=0;
00016
00017 static void meta_init(char **argv)
00018 {
00019 if (CmiMyRank()==0) memInit=1;
00020 CmiNodeAllBarrier();
00021 if (memInit) CmiPrintf("CMI_MEMORY(%d)> Called meta_init\n", CmiMyPe());
00022 }
00023
00024 static void *meta_malloc(size_t size)
00025 {
00026 void *ret=mm_malloc(size);
00027 if (memInit) CmiPrintf("CMI_MEMORY(%d)> malloc(%d) => %p\n",
00028 CmiMyPe(),size,ret);
00029 if (memInit>1) {int memBack=memInit; memInit=0; CmiPrintStackTrace(0); memInit=memBack;}
00030 return ret;
00031 }
00032
00033 static void meta_free(void *mem)
00034 {
00035 if (memInit && !inMemVerbose) {
00036 inMemVerbose = 1;
00037 CmiPrintf("CMI_MEMORY(%d)> free(%p)\n", CmiMyPe(),mem);
00038 inMemVerbose = 0;
00039 }
00040 if (memInit>1) {int memBack=memInit; memInit=0; CmiPrintStackTrace(0); memInit=memBack;}
00041 mm_free(mem);
00042 }
00043
00044 static void *meta_calloc(size_t nelem, size_t size)
00045 {
00046 void *ret=mm_calloc(nelem,size);
00047 if (memInit) CmiPrintf("CMI_MEMORY(%d)> calloc(%d,%d) => %p\n",
00048 CmiMyPe(),nelem,size,ret);
00049 return ret;
00050 }
00051
00052 static void meta_cfree(void *mem)
00053 {
00054 if (memInit) CmiPrintf("CMI_MEMORY(%d)> free(%p)\n",
00055 CmiMyPe(),mem);
00056 mm_cfree(mem);
00057 }
00058
00059 static void *meta_realloc(void *mem, size_t size)
00060 {
00061 void *ret=mm_realloc(mem,size);
00062 if (memInit) CmiPrintf("CMI_MEMORY(%d)> realloc(%p,%d) => %p\n",
00063 CmiMyPe(),mem,size,ret);
00064 return ret;
00065 }
00066
00067 static void *meta_memalign(size_t align, size_t size)
00068 {
00069 void *ret=mm_memalign(align,size);
00070 if (memInit) CmiPrintf("CMI_MEMORY(%d)> memalign(%p,%d) => %p\n",
00071 CmiMyPe(),align,size,ret);
00072 return ret;
00073 }
00074
00075 static int meta_posix_memalign(void **outptr, size_t align, size_t size)
00076 {
00077 void *origptr = *outptr;
00078 int ret=mm_posix_memalign(outptr,align,size);
00079 if (memInit) CmiPrintf("CMI_MEMORY(%d)> posix_memalign(%p,%p,%d), %p => %d, %p\n",
00080 CmiMyPe(),outptr,align,size,origptr,ret,*outptr);
00081 return ret;
00082 }
00083
00084 static void *meta_aligned_alloc(size_t align, size_t size)
00085 {
00086 void *ret=mm_aligned_alloc(align,size);
00087 if (memInit) CmiPrintf("CMI_MEMORY(%d)> aligned_alloc(%p,%d) => %p\n",
00088 CmiMyPe(),align,size,ret);
00089 return ret;
00090 }
00091
00092 static void *meta_valloc(size_t size)
00093 {
00094 void *ret=mm_valloc(size);
00095 if (memInit) CmiPrintf("CMI_MEMORY(%d)> valloc(%d) => %p\n",
00096 CmiMyPe(),size,ret);
00097 return ret;
00098 }
00099
00100 static void *meta_pvalloc(size_t size)
00101 {
00102 void *ret=mm_pvalloc(size);
00103 if (memInit) CmiPrintf("CMI_MEMORY(%d)> pvalloc(%d) => %p\n",
00104 CmiMyPe(),size,ret);
00105 return ret;
00106 }
00107