Blob
1 /*2 * These are here mainly so that I can link against3 * debugmalloc.c instead and not recompile the world.4 */6 #include <u.h>7 #define NOPLAN9DEFINES8 #include <libc.h>10 static Lock malloclock;12 void*13 p9malloc(ulong n)14 {15 void *v;17 if(n == 0)18 n++;19 lock(&malloclock);20 v = malloc(n);21 unlock(&malloclock);22 print("p9malloc %lud => %p; pc %lux\n", n, v, getcallerpc(&n));23 return v;24 }26 void27 p9free(void *v)28 {29 if(v == nil)30 return;31 lock(&malloclock);32 print("p9free %p; pc %lux\n", v, getcallerpc(&v));33 free(v);34 unlock(&malloclock);35 }37 void*38 p9calloc(ulong a, ulong b)39 {40 void *v;42 if(a*b == 0)43 a = b = 1;45 lock(&malloclock);46 v = calloc(a*b, 1);47 unlock(&malloclock);48 print("p9calloc %lud %lud => %p; pc %lux\n", a, b, v, getcallerpc(&a));49 return v;50 }52 void*53 p9realloc(void *v, ulong n)54 {55 void *vv;57 lock(&malloclock);58 vv = realloc(v, n);59 unlock(&malloclock);60 print("p9realloc %p %lud => %p; pc %lux\n", v, n, vv, getcallerpc(&v));61 return vv;62 }