mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-21 10:32:51 +00:00
Kernel: Add support for kernel addresses other than 3-4GB
This commit is contained in:
parent
6c6b778e2e
commit
b708b23b13
Notes:
sideshowbarker
2024-07-18 08:48:41 +09:00
Author: https://github.com/gunnarbeutner
Commit: b708b23b13
Pull-request: https://github.com/SerenityOS/serenity/pull/8795
Reviewed-by: https://github.com/Hendiadyoin1
5 changed files with 28 additions and 29 deletions
|
@ -436,7 +436,6 @@ UNMAP_AFTER_INIT void MemoryManager::initialize_physical_pages()
|
|||
unquickmap_page();
|
||||
|
||||
// Hook the page table into the kernel page directory
|
||||
VERIFY(((virtual_page_base_for_this_pt >> 30) & 0x3) == 3);
|
||||
PhysicalAddress boot_pd3_paddr(virtual_to_low_physical((FlatPtr)boot_pd3));
|
||||
|
||||
u32 page_directory_index = (virtual_page_base_for_this_pt >> 21) & 0x1ff;
|
||||
|
@ -507,7 +506,7 @@ PageTableEntry* MemoryManager::pte(PageDirectory& page_directory, VirtualAddress
|
|||
VERIFY_INTERRUPTS_DISABLED();
|
||||
VERIFY(s_mm_lock.own_lock());
|
||||
VERIFY(page_directory.get_lock().own_lock());
|
||||
u32 page_directory_table_index = (vaddr.get() >> 30) & 0x3;
|
||||
u32 page_directory_table_index = (vaddr.get() >> 30) & 0x1ff;
|
||||
u32 page_directory_index = (vaddr.get() >> 21) & 0x1ff;
|
||||
u32 page_table_index = (vaddr.get() >> 12) & 0x1ff;
|
||||
|
||||
|
@ -524,7 +523,7 @@ PageTableEntry* MemoryManager::ensure_pte(PageDirectory& page_directory, Virtual
|
|||
VERIFY_INTERRUPTS_DISABLED();
|
||||
VERIFY(s_mm_lock.own_lock());
|
||||
VERIFY(page_directory.get_lock().own_lock());
|
||||
u32 page_directory_table_index = (vaddr.get() >> 30) & 0x3;
|
||||
u32 page_directory_table_index = (vaddr.get() >> 30) & 0x1ff;
|
||||
u32 page_directory_index = (vaddr.get() >> 21) & 0x1ff;
|
||||
u32 page_table_index = (vaddr.get() >> 12) & 0x1ff;
|
||||
|
||||
|
@ -565,7 +564,7 @@ void MemoryManager::release_pte(PageDirectory& page_directory, VirtualAddress va
|
|||
VERIFY_INTERRUPTS_DISABLED();
|
||||
VERIFY(s_mm_lock.own_lock());
|
||||
VERIFY(page_directory.get_lock().own_lock());
|
||||
u32 page_directory_table_index = (vaddr.get() >> 30) & 0x3;
|
||||
u32 page_directory_table_index = (vaddr.get() >> 30) & 0x1ff;
|
||||
u32 page_directory_index = (vaddr.get() >> 21) & 0x1ff;
|
||||
u32 page_table_index = (vaddr.get() >> 12) & 0x1ff;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue