fixing up paging issues

This commit is contained in:
2026-06-15 18:09:04 -04:00
parent ac4b510221
commit 25da0f6a71
7 changed files with 101 additions and 85 deletions

View File

@@ -18,6 +18,9 @@ extern void enable_interrupts();
void* page = NULL;
extern char __kernel_start;
extern char __kernel_end;
void kmain(uint32_t magic, multiboot_info* mbi) {
extern print_stream_t vga_print_stream;
extern print_stream_t* kout;
@@ -49,16 +52,19 @@ void kmain(uint32_t magic, multiboot_info* mbi) {
return;
}
init_mm((void*)mbi->mmap_addr, mbi->mmap_length);
init_pmm((void*)mbi->mmap_addr, mbi->mmap_length);
uint32_t mem_size = total_free_memory();
kprintf("Total available memory: %d MB\n", mem_size / 1024 / 1024);
kprintf("__kernel_start: 0x%x\n", &__kernel_start);
kprintf("__kernel_end: 0x%x\n", &__kernel_end);
extern uint32_t page_directory[1024];
kprintf("page directory: 0x%x\n", &page_directory);
uint32_t size = (&__kernel_end - &__kernel_start) / 1024;
kprintf("kernel size: %dKB\n", size);
init_paging();
enable_paging();
kprintf("Paging enabled\n");
// enable_interrupts();
// kprintf("Interrupts enabled\n");
init_page_tables();
kprintf("Page tables reloaded");
while(1);
}