mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
[kernel] Remove explicit allocator passing
Many kernel objects had to keep a hold of refrences to allocators in order to pass them on down the call chain. Remove those explicit refrences and use `operator new`, `operator delete`, and define new `kalloc` and `kfree`. Also remove `slab_allocator` and replace it with a new mixin for slab allocation, `slab_allocated`, that overrides `operator new` and `operator free` for its subclass. Remove some no longer used related headers, `buddy_allocator.h` and `address_manager.h` Tags: memory
This commit is contained in:
@@ -31,6 +31,11 @@ void * operator new [] (size_t size) { return g_kernel_heap.allocate(size)
|
||||
void operator delete (void *p) noexcept { return g_kernel_heap.free(p); }
|
||||
void operator delete [] (void *p) noexcept { return g_kernel_heap.free(p); }
|
||||
|
||||
namespace kutil {
|
||||
void * kalloc(size_t size) { return g_kernel_heap.allocate(size); }
|
||||
void kfree(void *p) { return g_kernel_heap.free(p); }
|
||||
}
|
||||
|
||||
void walk_page_table(
|
||||
page_table *table,
|
||||
page_table::level level,
|
||||
@@ -90,8 +95,7 @@ memory_initialize(args::header *kargs)
|
||||
|
||||
new (&g_kernel_space) kutil::vm_space {
|
||||
kernel_offset,
|
||||
(page_offset-kernel_offset),
|
||||
g_kernel_heap};
|
||||
(page_offset-kernel_offset)};
|
||||
|
||||
|
||||
uintptr_t current_start = 0;
|
||||
|
||||
Reference in New Issue
Block a user