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 * 10 brk(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 char * 26 sbrk(int n) 27 { 28 29 n += 3; 30 n &= ~3; 31 if(_BRK_((void *)(bloc+n)) < 0){ 32 errno = ENOMEM; 33 return (char *)-1; 34 } 35 bloc += n; 36 return (char *)(bloc-n); 37 } 38