Kernel: kmalloc has now somewhat dynamic storage

Allocations bigger than PAGE_SIZE and those not forced to be identity
mapped are now done on a GeneralAllocator. This allows us to use kmalloc
for big allocations; bigger than the fixed 1 MiB storage.

This is still a hack and the whole kmalloc will have to be rewritten at
some point, but for now this does the job :D
This commit is contained in:
Bananymous
2023-06-18 23:27:00 +03:00
parent 09c824b90e
commit 9a7b2587af
5 changed files with 69 additions and 10 deletions

View File

@@ -65,7 +65,7 @@ namespace Kernel
static uint64_t* allocate_page_aligned_page()
{
void* page = kmalloc(PAGE_SIZE, PAGE_SIZE);
void* page = kmalloc(PAGE_SIZE, PAGE_SIZE, true);
ASSERT(page);
memset(page, 0, PAGE_SIZE);
return (uint64_t*)page;