waveblender/mem.c
Daniele Lacamera 22ff79dcdf Initial import
2020-04-06 21:08:01 +02:00

37 lines
745 B
C

/*
* (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;
}