malloc.c - 9base - revived minimalist port of Plan 9 userland to Unix
 (HTM) git clone git://git.suckless.org/9base
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       malloc.c (690B)
       ---
            1 /*
            2  * These are here mainly so that I can link against
            3  * debugmalloc.c instead and not recompile the world.
            4  */
            5 
            6 #include <u.h>
            7 #define NOPLAN9DEFINES
            8 #include <libc.h>
            9 
           10 static Lock malloclock;
           11 
           12 void*
           13 p9malloc(ulong n)
           14 {
           15         void *v;
           16         
           17         if(n == 0)
           18                 n++;
           19         lock(&malloclock);
           20         v = malloc(n);
           21         unlock(&malloclock);
           22         return v;
           23 }
           24 
           25 void
           26 p9free(void *v)
           27 {
           28         if(v == nil)
           29                 return;
           30         lock(&malloclock);
           31         free(v);
           32         unlock(&malloclock);
           33 }
           34 
           35 void*
           36 p9calloc(ulong a, ulong b)
           37 {
           38         void *v;
           39         
           40         if(a*b == 0)
           41                 a = b = 1;
           42 
           43         lock(&malloclock);
           44         v = calloc(a*b, 1);
           45         unlock(&malloclock);
           46         return v;
           47 }
           48 
           49 void*
           50 p9realloc(void *v, ulong n)
           51 {
           52         lock(&malloclock);
           53         v = realloc(v, n);
           54         unlock(&malloclock);
           55         return v;
           56 }