Blame


1 e830a908 2005-11-06 devnull /*
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.
4 e830a908 2005-11-06 devnull */
5 e830a908 2005-11-06 devnull
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>
9 e830a908 2005-11-06 devnull
10 e830a908 2005-11-06 devnull static Lock malloclock;
11 e830a908 2005-11-06 devnull
12 e830a908 2005-11-06 devnull void*
13 e830a908 2005-11-06 devnull p9malloc(ulong n)
14 e830a908 2005-11-06 devnull {
15 e830a908 2005-11-06 devnull void *v;
16 e830a908 2005-11-06 devnull
17 e830a908 2005-11-06 devnull if(n == 0)
18 e830a908 2005-11-06 devnull n++;
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;
24 e830a908 2005-11-06 devnull }
25 e830a908 2005-11-06 devnull
26 e830a908 2005-11-06 devnull void
27 e830a908 2005-11-06 devnull p9free(void *v)
28 e830a908 2005-11-06 devnull {
29 e830a908 2005-11-06 devnull if(v == nil)
30 e830a908 2005-11-06 devnull return;
31 e830a908 2005-11-06 devnull lock(&malloclock);
32 e830a908 2005-11-06 devnull print("p9free %p; pc %lux\n", v, getcallerpc(&v));
33 e830a908 2005-11-06 devnull free(v);
34 e830a908 2005-11-06 devnull unlock(&malloclock);
35 e830a908 2005-11-06 devnull }
36 e830a908 2005-11-06 devnull
37 e830a908 2005-11-06 devnull void*
38 e830a908 2005-11-06 devnull p9calloc(ulong a, ulong b)
39 e830a908 2005-11-06 devnull {
40 e830a908 2005-11-06 devnull void *v;
41 e830a908 2005-11-06 devnull
42 e830a908 2005-11-06 devnull if(a*b == 0)
43 e830a908 2005-11-06 devnull a = b = 1;
44 e830a908 2005-11-06 devnull
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;
50 e830a908 2005-11-06 devnull }
51 e830a908 2005-11-06 devnull
52 e830a908 2005-11-06 devnull void*
53 e830a908 2005-11-06 devnull p9realloc(void *v, ulong n)
54 e830a908 2005-11-06 devnull {
55 e830a908 2005-11-06 devnull void *vv;
56 e830a908 2005-11-06 devnull
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;
62 e830a908 2005-11-06 devnull }
63 e830a908 2005-11-06 devnull