[kernel] Move slab_allocated items to the heap

Allocate the slabs for slab-allocated items to the heap, now that heap
regions are aligned. This also lets the slab sizes be non-page-sized.
This commit is contained in:
Justin C. Miller
2022-10-11 18:52:19 -07:00
parent c9bcc87511
commit e830a3d37b
4 changed files with 7 additions and 22 deletions

View File

@@ -24,8 +24,6 @@ using bootproto::allocation_register;
using obj::vm_flags;
uintptr_t g_slabs_bump_pointer;
// These objects are initialized _before_ global constructors are called,
// so we don't want them to have global constructors at all, lest they
// overwrite the previous initialization.
@@ -56,10 +54,6 @@ obj::vm_area_guarded g_kernel_buffers {
mem::buffers_size,
vm_flags::write};
obj::vm_area_open g_kernel_slabs {
mem::slabs_size,
vm_flags::write};
void * operator new(size_t size) { return g_kernel_heap.allocate(size); }
void * operator new [] (size_t size) { return g_kernel_heap.allocate(size); }
void operator delete (void *p) noexcept { return g_kernel_heap.free(p); }
@@ -135,8 +129,6 @@ memory_initialize_post_ctors(bootproto::args &kargs)
{
vm_space &vm = vm_space::kernel_space();
vm.add(mem::buffers_offset, &g_kernel_buffers);
vm.add(mem::slabs_offset, &g_kernel_slabs);
g_slabs_bump_pointer = mem::slabs_offset;
g_frame_allocator.free(
get_physical_page(kargs.page_tables.pointer),