33 lines
639 B
C
33 lines
639 B
C
|
|
#include <mem_malloc.h>
|
|
|
|
/*
|
|
* Begin and End of memory area for malloc(), and current "brk"
|
|
*/
|
|
static ulong mem_malloc_start = 0;
|
|
static ulong mem_malloc_end = 0;
|
|
static ulong mem_malloc_brk = 0;
|
|
|
|
void mem_malloc_init (ulong start, ulong end)
|
|
{
|
|
mem_malloc_start = start;
|
|
mem_malloc_end = end;
|
|
mem_malloc_brk = mem_malloc_start;
|
|
|
|
memset ((void *) mem_malloc_start, 0,
|
|
mem_malloc_end - mem_malloc_start);
|
|
}
|
|
|
|
void *sbrk (ptrdiff_t increment)
|
|
{
|
|
ulong old = mem_malloc_brk;
|
|
ulong new = old + increment;
|
|
|
|
if ((new < mem_malloc_start) || (new > mem_malloc_end)) {
|
|
return (NULL);
|
|
}
|
|
mem_malloc_brk = new;
|
|
|
|
return ((void *) old);
|
|
}
|