6 extern char __iheap_start;
7 static char *top = &__iheap_start;
9 int iwram_brk(void *addr)
11 if((char*)addr < &__iheap_start) {
12 addr = &__iheap_start;
16 panic(get_pc(), "iwram_brk (%p) >= sp", addr);
22 void *iwram_sbrk(intptr_t delta)
25 iwram_brk(top + delta);
29 int ispow2(unsigned int x)
41 void *malloc_nf_impl(size_t sz, const char *file, int line)
44 if(!(p = malloc(sz))) {
45 panic(get_pc(), "%s:%d malloc %lu\n", file, line, (unsigned long)sz);
50 void *calloc_nf_impl(size_t num, size_t sz, const char *file, int line)
53 if(!(p = calloc(num, sz))) {
54 panic(get_pc(), "%s:%d calloc %lu\n", file, line, (unsigned long)(num * sz));
59 void *realloc_nf_impl(void *p, size_t sz, const char *file, int line)
61 if(!(p = realloc(p, sz))) {
62 panic(get_pc(), "%s:%d realloc %lu\n", file, line, (unsigned long)sz);
67 char *strdup_nf_impl(const char *s, const char *file, int line)
73 if(!(res = malloc(len + 1))) {
74 panic(get_pc(), "%s:%d strdup\n", file, line);
76 memcpy(res, s, len + 1);