8 #include "multicoreruntime.h"
9 #include "bambooalign.h"
10 #include "multicoremem.h"
11 #include "multicoregarbage.h"
12 #include "runtime_arch.h"
13 #include "methodheaders.h"
15 extern volatile bool gcflag;
16 void * mycalloc_share(struct garbagelist * stackptr, int size) {
18 int isize = ((size-1)&(~(ALIGNMENTSIZE-1)))+ALIGNMENTSIZE;
22 while(loopcount<10000) {
23 p = BAMBOO_SHARE_MEM_CALLOC(isize); // calloc(m, isize);
28 // no more global shared memory
36 // no more global shared memory
37 printf("Did %u collections without getting memory\n", hasgc);
41 tprintf("Loopcount hit 10000\n");
47 void * mycalloc_share(int size) {
48 int isize = ((size-1)&(~(BAMBOO_CACHE_LINE_MASK)))+(BAMBOO_CACHE_LINE_SIZE);
49 void * p = BAMBOO_SHARE_MEM_CALLOC(isize); // calloc(m, isize);
51 // no more global shared memory
54 return (void *)(BAMBOO_CACHE_LINE_SIZE+((int)p-1)&(~BAMBOO_CACHE_LINE_MASK));
58 void * mycalloc(int size, char * file, int line) {
59 BAMBOO_ENTER_RUNTIME_MODE_FROM_CLIENT();
60 void * p = mycalloc_i(size, file, line);
61 BAMBOO_ENTER_CLIENT_MODE_FROM_RUNTIME();
66 void * mycalloc_i(int size, char * file, int line) {
67 void * p = BAMBOO_LOCAL_MEM_CALLOC(size);
69 tprintf("mycalloc_i %s %d \n", file, line);
75 void myfree(void * ptr) {
76 BAMBOO_ENTER_RUNTIME_MODE_FROM_CLIENT();
77 BAMBOO_LOCAL_MEM_FREE(ptr);
78 BAMBOO_ENTER_CLIENT_MODE_FROM_RUNTIME();
82 void myfree_i(void * ptr) {
83 BAMBOO_LOCAL_MEM_FREE(ptr);