scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

_getheap.c (433B)


      1 #include <errno.h>
      2 #include <stddef.h>
      3 
      4 #include "../../syscall.h"
      5 
      6 static char heap[16384];
      7 
      8 /*
      9  * TODO: Temporary solution until we implement mmap in Darwin
     10  *       because it does not support any form of brk().
     11  */
     12 void *
     13 _getheap(void)
     14 {
     15 	return heap;
     16 }
     17 
     18 int
     19 _brk(void *addr)
     20 {
     21 	static char *cur = heap;
     22 	char *p = addr;
     23 
     24 	if (p < heap || p > &heap[sizeof(heap) - 1]) {
     25 		errno = ENOMEM;
     26 		return -1;
     27 	}
     28 	cur = p;
     29 
     30 	return 0;
     31 }