c52e8af79b46c87df2d6e8beb79c12e020876171
[gbajam21] / src / util.c
1 #include "util.h"
2 #include "debug.h"
3
4 extern char __data_end__;
5 static char *top = &__data_end__;
6
7 int iwram_brk(void *addr)
8 {
9         if(addr < &__data_end__) {
10                 addr = &__data_end__;
11         }
12         if(addr > get_sp()) {
13                 /*return -1;*/
14                 panic(get_pc(), "iwram_brk (%p) >= sp", addr);
15         }
16         top = addr;
17         return 0;
18 }
19
20 void *iwram_sbrk(intptr_t delta)
21 {
22         void *prev = top;
23         iwram_brk(top + delta);
24         return prev;
25 }