Kernel: Kmalloc now has its memory statically allocated

We don't use the memory map given by bootloader since this automatically
maps the memory to a available space.
This commit is contained in:
Bananymous
2023-04-14 14:15:26 +03:00
parent fdb4eb6042
commit 6a3b3213cf
5 changed files with 17 additions and 50 deletions

View File

@@ -47,6 +47,8 @@ MMU::MMU()
m_highest_paging_struct[i] = (uint64_t)page_directory | Flags::Present;
}
// FIXME: We should just identity map until g_kernel_end
// create and identity map first 6 MiB
uint64_t* page_directory1 = (uint64_t*)(m_highest_paging_struct[0] & PAGE_MASK);
for (uint64_t i = 0; i < 3; i++)

View File

@@ -28,9 +28,7 @@ g_boot_stack_bottom:
g_boot_stack_top:
# 0 MiB -> 1 MiB: bootloader stuff
# 1 MiB -> 2 MiB: kernel
# 2 MiB -> 3 MiB: kmalloc
# 3 MiB -> 4 Mib: kmalloc_fixed
# 1 MiB -> : kernel
.align 32
boot_page_directory_pointer_table:
.skip 4 * 8

View File

@@ -35,7 +35,9 @@ static uint64_t* allocate_page_aligned_page()
MMU::MMU()
{
// Identity map from 4 KiB -> 6 MiB
// FIXME: We should just identity map until g_kernel_end
// Identity map from 0 -> 6 MiB
m_highest_paging_struct = allocate_page_aligned_page();
uint64_t* pdpt = allocate_page_aligned_page();

View File

@@ -41,9 +41,7 @@
# we will identity map first 4 MiB
# 0 MiB -> 1 MiB: bootloader stuff
# 1 MiB -> 4 MiB: kernel
# 4 MiB -> 5 MiB: kmalloc
# 5 MiB -> 6 MiB: kmalloc_fixed
# 1 MiB -> : kernel
.align 4096
boot_pml4:
.skip 512 * 8