work on page loading

This commit is contained in:
2026-02-10 16:18:19 +01:00
parent 0521c9c1ec
commit 67291f7f19
8 changed files with 96 additions and 30 deletions

View File

@@ -3,6 +3,8 @@
#include "../types.h"
#define KERNEL_MEMORY_BORDER 0x4000000
typedef struct {
uint8_t present:1 = 0;
uint8_t write:1 = 0;
@@ -39,14 +41,15 @@ typedef struct {
alignas(4096) pagetable_t l4;
alignas(4096) pagetable_t l3;
alignas(4096) pagetable_t l2;
alignas(4096) pagetable_t l1[64];
alignas(4096) pagetable_t l1[KERNEL_MEMORY_BORDER/4096/512];
alignas(4096) pagetable_t l2_apic;
alignas(4096) pagetable_t ioapic;
alignas(4096) pagetable_t lapic;
} four_lvl_paging_t;
void create_basic_page_table(uintptr_t base);
void load_cr3( void* cr3_value );
void create_basic_page_table(four_lvl_paging_t* table);
void load_cr3(void* cr3_value);
void map_pageframe(four_lvl_paging_t* table, uintptr_t phys, uintptr_t virt);
//typedef struct {
// same