_Actually_ move the kernel to the last TiB.

More work on process page tables, including only mapping the last 2 pml4
entries (the highest 1TiB of the address space, ie, kernel space) into a
new table.

Includes the work of actually moving the kernel there, which I had
apparently done in name only previously. Oops.
This commit is contained in:
Justin C. Miller
2018-09-01 14:54:12 -07:00
parent d33f1bc6f2
commit 799fbbdd10
9 changed files with 16 additions and 16 deletions

View File

@@ -4,7 +4,7 @@
#include "page_manager.h"
const unsigned efi_page_size = 0x1000;
const unsigned ident_page_flags = 0xf; // TODO: set to 0xb when user/kernel page tables are better sorted
const unsigned ident_page_flags = 0xb;
enum class efi_memory_type : uint32_t
{
@@ -436,7 +436,7 @@ memory_initialize(const void *memory_map, size_t map_length, size_t desc_length)
// Offset-map this region into the higher half.
uint64_t free_region_start_virt =
free_region_start_phys + page_manager::high_offset;
free_region_start_phys + page_manager::page_offset;
uint64_t free_next = free_region_start_virt;