12345678910111213141516171819202122232425262728293031323334353637 |
- /*
- * (c) danielinux 2019
- * GPLv.2
- *
- * See LICENSE for details
- */
- extern unsigned int _start_heap;
- #define NULL (((void *)0))
- void * _sbrk(unsigned int incr)
- {
- static unsigned char *heap = (unsigned char *)&_start_heap;
- void *old_heap = heap;
- if (((incr >> 2) << 2) != incr)
- incr = ((incr >> 2) + 1) << 2;
- if (heap == NULL)
- heap = (unsigned char *)&_start_heap;
- else
- heap += incr;
- return old_heap;
- }
- void * _sbrk_r(unsigned int incr)
- {
- static unsigned char *heap = NULL;
- void *old_heap = heap;
- if (((incr >> 2) << 2) != incr)
- incr = ((incr >> 2) + 1) << 2;
- if (old_heap == NULL)
- old_heap = heap = (unsigned char *)&_start_heap;
- heap += incr;
- return old_heap;
- }
|