start of new file
[IRC.git] / Robust / src / Runtime / mem.c
1 #include "mem.h"
2
3 #ifdef RAW
4 #include "runtime.h"
5 #include <raw.h>
6
7 /*void * m_calloc(int m, int size) {
8         void * p = malloc(m*size);
9         int i = 0;
10         for(i = 0; i < size; ++i) {
11                 *(char *)(p+i) = 0;
12         }
13         return p;
14 }*/
15
16 void * mycalloc(int m, int size) {
17         void * p = NULL;
18         int isize = 2*kCacheLineSize-4+(size-1)&(~kCacheLineMask);
19 #ifdef RAWDEBUG
20         raw_test_pass(0xdd00);
21 #endif
22 #ifdef INTERRUPT
23         // shut down interrupt
24         raw_user_interrupts_off();
25 #endif
26         p = calloc(m, isize);
27         //p = m_calloc(m, isize);
28 #ifdef RAWDEBUG
29         raw_test_pass_reg(p);
30         raw_test_pass_reg((kCacheLineSize+((int)p-1)&(~kCacheLineMask)));
31 #endif
32 #ifdef INTERRUPT
33         // re-open interruption
34         raw_user_interrupts_on();
35 #endif
36         return (void *)(kCacheLineSize+((int)p-1)&(~kCacheLineMask));
37 }
38
39 void * mycalloc_i(int m, int size) {
40         void * p = NULL;
41         int isize = 2*kCacheLineSize-4+(size-1)&(~kCacheLineMask);
42 #ifdef RAWDEBUG
43         raw_test_pass(0xdd00);
44 #endif
45         p = calloc(m, isize);
46         //p = m_calloc(m, isize);
47 #ifdef RAWDEBUG
48         raw_test_pass_reg(p);
49         raw_test_pass_reg((kCacheLineSize+((int)p-1)&(~kCacheLineMask)));
50 #endif
51         return (void *)(kCacheLineSize+((int)p-1)&(~kCacheLineMask));
52 }
53
54 void myfree(void * ptr) {
55         return;
56 }
57
58 #endif