1 #include "lib.h" 2 #include <errno.h> 3 #include "sys9.h" 4 5 char end[]; 6 static char *bloc = { end }; 7 extern int _BRK_(void*); 8 9 char * brk(char * p)10brk(char *p) 11 { 12 unsigned long n; 13 14 n = (unsigned long)p; 15 n += 3; 16 n &= ~3; 17 if(_BRK_((void*)n) < 0){ 18 errno = ENOMEM; 19 return (char *)-1; 20 } 21 bloc = (char *)n; 22 return 0; 23 } 24 25 void * sbrk(unsigned long n)26sbrk(unsigned long n) 27 { 28 n += 3; 29 n &= ~3; 30 if(_BRK_((void *)(bloc+n)) < 0){ 31 errno = ENOMEM; 32 return (void *)-1; 33 } 34 bloc += n; 35 return (void *)(bloc-n); 36 } 37