#include "bump.h" #include "memory.h" static void *s_next_free; void* bump_where(void) { return s_next_free; } void *bump_alloc(size_t size) { void *ret = s_next_free; s_next_free = (void*)((uintptr_t)s_next_free + size); vm_ensure( (uintptr_t)ret, (uintptr_t)s_next_free, (page_flags_t) { .present = true, .writeable = true, .useraccess = false, .executable = false }); return ret; } void bump_setup(void) { extern void *_kernel_end; s_next_free = (void*)&_kernel_end; }