diff options
| author | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-09-03 23:53:53 +0200 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-09-04 16:42:56 +0200 |
| commit | 6e9b3275d75e0cdbae1e8f7e4dda8880bb6346bc (patch) | |
| tree | d6c7daf073f41ec2df196a322e8d1210d8e126a1 /kernel/src/mem/paging.c | |
| parent | 11ced165e0df11cc3c889eb0cc402467361c421b (diff) | |
gdt & tss
Diffstat (limited to 'kernel/src/mem/paging.c')
| -rw-r--r-- | kernel/src/mem/paging.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/src/mem/paging.c b/kernel/src/mem/paging.c index 531c300..630fb6d 100644 --- a/kernel/src/mem/paging.c +++ b/kernel/src/mem/paging.c @@ -51,9 +51,10 @@ void init_paging(void) page_table_lvl3[2] = (uint64_t)page_table_lvl2_2 + FLAG_PRESENT + FLAG_WRITABLE - KERNEL_VMA; page_table_lvl3[3] = (uint64_t)page_table_lvl2_3 + FLAG_PRESENT + FLAG_WRITABLE - KERNEL_VMA; - // higher half map first 4mb - map_addr(KERNEL_VMA, 0x00000000, FLAG_PRESENT + FLAG_WRITABLE + FLAG_HUGE); - map_addr(KERNEL_VMA + PAGE_SIZE, 0x00000000 + PAGE_SIZE, FLAG_PRESENT + FLAG_WRITABLE + FLAG_HUGE); + // higher half map first 6mb + for (size_t i = 0; i < 3; i++) { + map_addr(KERNEL_VMA + PAGE_SIZE * i, 0x00000000 + PAGE_SIZE * i, FLAG_PRESENT + FLAG_WRITABLE + FLAG_HUGE); + } load_pt_lvl4(page_table_lvl4); } |
