jvm/c/malloc.c

27 lines
458 B
C

#include "malloc.h"
#include <assert.h>
struct arena {
uint8_t * mem;
uint32_t size;
uint32_t ix;
};
static uint8_t class_mem[0x100000];
struct arena class_arena = {
.mem = class_mem,
.size = (sizeof (class_mem)),
.ix = 0,
};
void * malloc_class_arena(uint32_t size)
{
assert((class_arena.ix & (~3)) == class_arena.ix);
void * ptr = &class_arena.mem[class_arena.ix];
size = (size + 3) & (~3);
class_arena.ix += size;
return ptr;
}