5 #include "runtime_arch.h"
7 /*void * m_calloc(int m, int size) {
8 void * p = malloc(m*size);
10 for(i = 0; i < size; ++i) {
16 void * mycalloc(int m, int size) {
18 int isize = 2*BAMBOO_CACHE_LINE_SIZE-4+(size-1)&(~BAMBOO_CACHE_LINE_MASK);
19 BAMBOO_START_CRITICAL_SECTION_MEM();
20 p = BAMBOO_LOCAL_MEM_CALLOC(m, isize); // calloc(m, isize);
21 BAMBOO_CLOSE_CRITICAL_SECTION_MEM();
22 return (void *)(BAMBOO_CACHE_LINE_SIZE+((int)p-1)&(~BAMBOO_CACHE_LINE_MASK));
25 void * mycalloc_share(int m, int size) {
27 int isize = 2*BAMBOO_CACHE_LINE_SIZE-4+(size-1)&(~BAMBOO_CACHE_LINE_MASK);
28 BAMBOO_START_CRITICAL_SECTION_MEM();
29 p = BAMBOO_SHARE_MEM_CALLOC_I(m, isize); // calloc(m, isize);
30 BAMBOO_CLOSE_CRITICAL_SECTION_MEM();
31 return (void *)(BAMBOO_CACHE_LINE_SIZE+((int)p-1)&(~BAMBOO_CACHE_LINE_MASK));
34 void * mycalloc_i(int m, int size) {
36 int isize = 2*BAMBOO_CACHE_LINE_SIZE-4+(size-1)&(~BAMBOO_CACHE_LINE_MASK);
37 p = BAMBOO_LOCAL_MEM_CALLOC(m, isize); // calloc(m, isize);
38 return (void *)(BAMBOO_CACHE_LINE_SIZE+((int)p-1)&(~BAMBOO_CACHE_LINE_MASK));
41 void myfree(void * ptr) {