2 e830a908 2005-11-06 devnull * These are here mainly so that I can link against
3 e830a908 2005-11-06 devnull * debugmalloc.c instead and not recompile the world.
6 e830a908 2005-11-06 devnull #include <u.h>
7 e830a908 2005-11-06 devnull #define NOPLAN9DEFINES
8 e830a908 2005-11-06 devnull #include <libc.h>
10 e830a908 2005-11-06 devnull static Lock malloclock;
13 e830a908 2005-11-06 devnull p9malloc(ulong n)
17 e830a908 2005-11-06 devnull if(n == 0)
19 e830a908 2005-11-06 devnull lock(&malloclock);
20 e830a908 2005-11-06 devnull v = malloc(n);
21 e830a908 2005-11-06 devnull unlock(&malloclock);
22 e830a908 2005-11-06 devnull print("p9malloc %lud => %p; pc %lux\n", n, v, getcallerpc(&n));
23 e830a908 2005-11-06 devnull return v;
27 e830a908 2005-11-06 devnull p9free(void *v)
29 e830a908 2005-11-06 devnull if(v == nil)
31 e830a908 2005-11-06 devnull lock(&malloclock);
32 e830a908 2005-11-06 devnull print("p9free %p; pc %lux\n", v, getcallerpc(&v));
34 e830a908 2005-11-06 devnull unlock(&malloclock);
38 e830a908 2005-11-06 devnull p9calloc(ulong a, ulong b)
42 e830a908 2005-11-06 devnull if(a*b == 0)
43 e830a908 2005-11-06 devnull a = b = 1;
45 e830a908 2005-11-06 devnull lock(&malloclock);
46 e830a908 2005-11-06 devnull v = calloc(a*b, 1);
47 e830a908 2005-11-06 devnull unlock(&malloclock);
48 e830a908 2005-11-06 devnull print("p9calloc %lud %lud => %p; pc %lux\n", a, b, v, getcallerpc(&a));
49 e830a908 2005-11-06 devnull return v;
53 e830a908 2005-11-06 devnull p9realloc(void *v, ulong n)
55 e830a908 2005-11-06 devnull void *vv;
57 e830a908 2005-11-06 devnull lock(&malloclock);
58 e830a908 2005-11-06 devnull vv = realloc(v, n);
59 e830a908 2005-11-06 devnull unlock(&malloclock);
60 e830a908 2005-11-06 devnull print("p9realloc %p %lud => %p; pc %lux\n", v, n, vv, getcallerpc(&v));
61 e830a908 2005-11-06 devnull return vv;