work on page loading
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user