sbrk.c 374 B

12345678910111213141516171819
  1. /* See LICENSE of license details. */
  2. #include <stddef.h>
  3. void *_sbrk(ptrdiff_t incr) {
  4. extern char _end[];
  5. static char *curbrk = _end;
  6. #ifndef __ANDES__
  7. extern char _heap_end[];
  8. if ((curbrk + incr < _end) || (curbrk + incr > _heap_end))
  9. #else
  10. if ((curbrk + incr < _end) )
  11. #endif
  12. return NULL - 1;
  13. curbrk += incr;
  14. return curbrk - incr;
  15. }