fix some bugs in Bamboo
[IRC.git] / Robust / src / Runtime / mem.h
1 #ifndef MEMH
2 #define MEMH
3 #include <stdlib.h>
4 #ifndef RAW
5 #include <stdio.h>
6 #endif
7
8 #ifdef BOEHM_GC
9 #include "gc.h"
10 #define FREEMALLOC(x) GC_malloc(x)
11 #define RUNMALLOC(x) GC_malloc(x)
12 #define RUNFREE(x)
13 #else
14 #ifdef PRECISE_GC
15 #include "garbage.h"
16 #define RUNMALLOC(x) calloc(1,x)
17 #define RUNFREE(x) free(x)
18 #else
19 #ifdef MULTICORE
20 void * mycalloc(int m, int size);
21 void * mycalloc_i(int m, int size);
22 void myfree(void * ptr);
23 #define RUNMALLOC(x) mycalloc(1,x) // handle interruption inside
24 #define RUNMALLOC_I(x) mycalloc_i(1,x) //with interruption blocked beforehand
25 #define RUNFREE(x) myfree(x)
26 #ifdef MULTICORE_GC
27 #include "multicoregc.h"
28 void * mycalloc_share(struct garbagelist * stackptr, int m, int size);
29 #define FREEMALLOC(s, x) mycalloc_share((s),1,(x))
30 #else
31 void * mycalloc_share(int m, int size);
32 #define FREEMALLOC(x) mycalloc_share(1,x)
33 #endif // #ifdef MULTICORE_GC
34 //#define PTR(x) (32+(x-1)&~31)
35 #endif  // #ifdef MULTICORE
36 #endif  // #ifdef PRECISE_GC
37 #endif  // #ifdef BOEHM_GC
38 #endif  // #ifdef MEMH