Blame


1 9c635587 2004-06-09 devnull /*
2 9c635587 2004-06-09 devnull * These are here mainly so that I can link against
3 9c635587 2004-06-09 devnull * debugmalloc.c instead and not recompile the world.
4 9c635587 2004-06-09 devnull */
5 9c635587 2004-06-09 devnull
6 b3994ec5 2003-12-11 devnull #include <u.h>
7 b3994ec5 2003-12-11 devnull #define NOPLAN9DEFINES
8 b3994ec5 2003-12-11 devnull #include <libc.h>
9 b3994ec5 2003-12-11 devnull
10 8be32ce2 2005-07-14 devnull static Lock malloclock;
11 8be32ce2 2005-07-14 devnull
12 b3994ec5 2003-12-11 devnull void*
13 b3994ec5 2003-12-11 devnull p9malloc(ulong n)
14 b3994ec5 2003-12-11 devnull {
15 8be32ce2 2005-07-14 devnull void *v;
16 8be32ce2 2005-07-14 devnull
17 b3994ec5 2003-12-11 devnull if(n == 0)
18 b3994ec5 2003-12-11 devnull n++;
19 8be32ce2 2005-07-14 devnull lock(&malloclock);
20 8be32ce2 2005-07-14 devnull v = malloc(n);
21 8be32ce2 2005-07-14 devnull unlock(&malloclock);
22 8be32ce2 2005-07-14 devnull return v;
23 b3994ec5 2003-12-11 devnull }
24 7e0e6522 2004-05-23 devnull
25 7e0e6522 2004-05-23 devnull void
26 7e0e6522 2004-05-23 devnull p9free(void *v)
27 7e0e6522 2004-05-23 devnull {
28 9c635587 2004-06-09 devnull if(v == nil)
29 9c635587 2004-06-09 devnull return;
30 8be32ce2 2005-07-14 devnull lock(&malloclock);
31 7e0e6522 2004-05-23 devnull free(v);
32 8be32ce2 2005-07-14 devnull unlock(&malloclock);
33 7e0e6522 2004-05-23 devnull }
34 7e0e6522 2004-05-23 devnull
35 7e0e6522 2004-05-23 devnull void*
36 7e0e6522 2004-05-23 devnull p9calloc(ulong a, ulong b)
37 7e0e6522 2004-05-23 devnull {
38 8be32ce2 2005-07-14 devnull void *v;
39 8be32ce2 2005-07-14 devnull
40 9c635587 2004-06-09 devnull if(a*b == 0)
41 9c635587 2004-06-09 devnull a = b = 1;
42 7e0e6522 2004-05-23 devnull
43 8be32ce2 2005-07-14 devnull lock(&malloclock);
44 8be32ce2 2005-07-14 devnull v = calloc(a*b, 1);
45 8be32ce2 2005-07-14 devnull unlock(&malloclock);
46 8be32ce2 2005-07-14 devnull return v;
47 7e0e6522 2004-05-23 devnull }
48 7e0e6522 2004-05-23 devnull
49 7e0e6522 2004-05-23 devnull void*
50 7e0e6522 2004-05-23 devnull p9realloc(void *v, ulong n)
51 7e0e6522 2004-05-23 devnull {
52 8be32ce2 2005-07-14 devnull lock(&malloclock);
53 8be32ce2 2005-07-14 devnull v = realloc(v, n);
54 8be32ce2 2005-07-14 devnull unlock(&malloclock);
55 8be32ce2 2005-07-14 devnull return v;
56 7e0e6522 2004-05-23 devnull }