5 #include "runtime_arch.h"
8 void * mycalloc_share(struct garbagelist * stackptr,
12 //int isize = 2*BAMBOO_CACHE_LINE_SIZE-4+(size-1)&(~BAMBOO_CACHE_LINE_MASK);
13 int isize = (size & (~(BAMBOO_CACHE_LINE_MASK))) + (BAMBOO_CACHE_LINE_SIZE);
16 BAMBOO_ENTER_RUNTIME_MODE_FROM_CLIENT();
17 p = BAMBOO_SHARE_MEM_CALLOC_I(m, isize); // calloc(m, isize);
19 // no more global shared memory
20 BAMBOO_ENTER_CLIENT_MODE_FROM_RUNTIME();
27 // no more global shared memory
31 // try to malloc again
34 BAMBOO_ENTER_CLIENT_MODE_FROM_RUNTIME();
36 (void *)(BAMBOO_CACHE_LINE_SIZE+((int)p-1)&(~BAMBOO_CACHE_LINE_MASK));
37 BAMBOO_MEMSET_WH(p, -2, (alignedp - p));
38 BAMBOO_MEMSET_WH(alignedp + size, -2, p + isize - alignedp - size);
42 void * mycalloc_share(int m,
45 //int isize = 2*BAMBOO_CACHE_LINE_SIZE-4+(size-1)&(~BAMBOO_CACHE_LINE_MASK);
46 int isize = (size & (~(BAMBOO_CACHE_LINE_MASK))) + (BAMBOO_CACHE_LINE_SIZE);
47 BAMBOO_ENTER_RUNTIME_MODE_FROM_CLIENT();
48 p = BAMBOO_SHARE_MEM_CALLOC_I(m, isize); // calloc(m, isize);
50 // no more global shared memory
53 BAMBOO_ENTER_CLIENT_MODE_FROM_RUNTIME();
55 (void *)(BAMBOO_CACHE_LINE_SIZE+((int)p-1)&(~BAMBOO_CACHE_LINE_MASK));
59 void * mycalloc(int m,
63 BAMBOO_ENTER_RUNTIME_MODE_FROM_CLIENT();
64 p = BAMBOO_LOCAL_MEM_CALLOC(m, isize); // calloc(m, isize);
68 BAMBOO_ENTER_CLIENT_MODE_FROM_RUNTIME();
73 void * mycalloc_i(int m,
77 p = BAMBOO_LOCAL_MEM_CALLOC(m, isize); // calloc(m, isize);
84 void myfree(void * ptr) {
85 BAMBOO_LOCAL_MEM_FREE(ptr);