mm: add get_page_dir & set_page_dir

This commit is contained in:
2025-05-31 18:09:56 +03:00
parent d5f41b1ef9
commit 33aa97c6ec
2 changed files with 13 additions and 0 deletions
+2
View File
@@ -39,6 +39,8 @@ extern uint32_t *kpage_dir;
//paging.c //paging.c
void grub_memory_map(unsigned int magic, struct multiboot_info* mbi); void grub_memory_map(unsigned int magic, struct multiboot_info* mbi);
uint32_t* get_page_dir();
void set_page_dir(uint32_t new_page_dir);
void enablePaging(); void enablePaging();
void loadPageDirectory(uint32_t* page_directory); void loadPageDirectory(uint32_t* page_directory);
+11
View File
@@ -112,6 +112,17 @@ void grub_memory_map(unsigned int magic, struct multiboot_info* mbi)
} }
} }
uint32_t* get_page_dir()
{
uint32_t cr3_value;
asm volatile("mov %%cr3, %0" : "=r" (cr3_value));
return (uint32_t*) cr3_value;
}
void set_page_dir(uint32_t new_page_dir) {
asm volatile("mov %0, %%cr3" : : "r" (new_page_dir));
}
void enablePaging() { void enablePaging() {
asm volatile ( asm volatile (
"mov %%cr0, %%eax\n" "mov %%cr0, %%eax\n"