1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #include <errno.h>
- #include <stdio.h>
- register char * stack_ptr asm("sp");
- caddr_t _sbrk(int incr)
- {
- extern char end asm("end");
- static char *heap_end;
- char *prev_heap_end;
- if (heap_end == 0)
- heap_end = &end;
- prev_heap_end = heap_end;
- if (heap_end + incr > stack_ptr)
- {
- errno = ENOMEM;
- return (caddr_t) -1;
- }
- heap_end += incr;
- return (caddr_t) prev_heap_end;
- }
|