Blob


1 /*
2 * These are here mainly so that I can link against
3 * debugmalloc.c instead and not recompile the world.
4 */
6 #include <u.h>
7 #define NOPLAN9DEFINES
8 #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 return v;
23 }
25 void
26 p9free(void *v)
27 {
28 if(v == nil)
29 return;
30 lock(&malloclock);
31 free(v);
32 unlock(&malloclock);
33 }
35 void*
36 p9calloc(ulong a, ulong b)
37 {
38 void *v;
40 if(a*b == 0)
41 a = b = 1;
43 lock(&malloclock);
44 v = calloc(a*b, 1);
45 unlock(&malloclock);
46 return v;
47 }
49 void*
50 p9realloc(void *v, ulong n)
51 {
52 lock(&malloclock);
53 v = realloc(v, n);
54 unlock(&malloclock);
55 return v;
56 }