12345678910111213141516171819202122232425262728293031323334353637 |
- #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;
- }
- char *
- sbrk(int n)
- {
- n += 3;
- n &= ~3;
- if(_BRK_((void *)(bloc+n)) < 0){
- errno = ENOMEM;
- return (char *)-1;
- }
- bloc += n;
- return (char *)(bloc-n);
- }
|