diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/ape/lib/ap/plan9/brk.c |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/ape/lib/ap/plan9/brk.c')
-rwxr-xr-x | sys/src/ape/lib/ap/plan9/brk.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/sys/src/ape/lib/ap/plan9/brk.c b/sys/src/ape/lib/ap/plan9/brk.c new file mode 100755 index 000000000..0b3240377 --- /dev/null +++ b/sys/src/ape/lib/ap/plan9/brk.c @@ -0,0 +1,36 @@ +#include "lib.h" +#include <errno.h> +#include "sys9.h" + +char end[]; +static char *bloc = { end }; +extern int _BRK_(void*); + +char * +brk(char *p) +{ + unsigned long n; + + n = (unsigned long)p; + n += 3; + n &= ~3; + if(_BRK_((void*)n) < 0){ + errno = ENOMEM; + return (char *)-1; + } + bloc = (char *)n; + return 0; +} + +void * +sbrk(unsigned long n) +{ + n += 3; + n &= ~3; + if(_BRK_((void *)(bloc+n)) < 0){ + errno = ENOMEM; + return (void *)-1; + } + bloc += n; + return (void *)(bloc-n); +} |