5 #include "runtime_arch.h"
8 extern volatile bool gcflag;
9 void * mycalloc_share(struct garbagelist * stackptr, int size) {
12 int isize = ((size-1)&(~(ALIGNMENTSIZE-1)))+ALIGNMENTSIZE;
19 p = BAMBOO_SHARE_MEM_CALLOC(isize); // calloc(m, isize);
22 // no more global shared memory
30 // no more global shared memory
40 void * mycalloc_share(int size) {
41 int isize = ((size-1)&(~(BAMBOO_CACHE_LINE_MASK)))+(BAMBOO_CACHE_LINE_SIZE);
42 void * p = BAMBOO_SHARE_MEM_CALLOC(isize); // calloc(m, isize);
44 // no more global shared memory
47 return (void *)(BAMBOO_CACHE_LINE_SIZE+((int)p-1)&(~BAMBOO_CACHE_LINE_MASK));
51 void * mycalloc(int size,
56 BAMBOO_ENTER_RUNTIME_MODE_FROM_CLIENT();
58 extern bool gc_localheap_s;
60 p = gc_localheap_s ? BAMBOO_LOCAL_MEM_CALLOC_S(isize) :
61 BAMBOO_LOCAL_MEM_CALLOC(isize);
63 p = BAMBOO_LOCAL_MEM_CALLOC(isize); // calloc(m, isize);
68 gc_localheap_s = true;
72 printf("mycalloc %s %d \n", file, line);
75 BAMBOO_ENTER_CLIENT_MODE_FROM_RUNTIME();
80 void * mycalloc_i(int size,
86 extern bool gc_localheap_s;
88 p = gc_localheap_s ? BAMBOO_LOCAL_MEM_CALLOC_S(isize) :
89 BAMBOO_LOCAL_MEM_CALLOC(isize);
91 p = BAMBOO_LOCAL_MEM_CALLOC(isize); // calloc(m, isize);
96 gc_localheap_s = true;
100 tprintf("mycalloc_i %s %d \n", file, line);
106 void myfree(void * ptr) {
107 BAMBOO_ENTER_RUNTIME_MODE_FROM_CLIENT();
109 if(ptr >= BAMBOO_LOCAL_HEAP_START_VA ) {
111 BAMBOO_LOCAL_MEM_FREE(ptr);
113 } else if(ptr >= BAMBOO_LOCAL_HEAP_START_VA_S) {
114 BAMBOO_LOCAL_MEM_FREE_S(ptr);
117 BAMBOO_ENTER_CLIENT_MODE_FROM_RUNTIME();
121 void myfree_i(void * ptr) {
123 if(ptr >= BAMBOO_LOCAL_HEAP_START_VA ) {
125 BAMBOO_LOCAL_MEM_FREE(ptr);
127 } else if(ptr >= BAMBOO_LOCAL_HEAP_START_VA_S) {
128 BAMBOO_LOCAL_MEM_FREE_S(ptr);