Bladeren bron

Kernel: Get rid of MemoryManager::allocate_page_table()

We can just use the physical page allocator directly, there's no need
for a dedicated function for page tables.
Andreas Kling 5 jaren geleden
bovenliggende
commit
a40afc4562
2 gewijzigde bestanden met toevoegingen van 1 en 13 verwijderingen
  1. 1 11
      Kernel/VM/MemoryManager.cpp
  2. 0 2
      Kernel/VM/MemoryManager.h

+ 1 - 11
Kernel/VM/MemoryManager.cpp

@@ -151,16 +151,6 @@ void MemoryManager::initialize_paging()
 #endif
 }
 
-RefPtr<PhysicalPage> MemoryManager::allocate_page_table(PageDirectory& page_directory, unsigned index)
-{
-    ASSERT(!page_directory.m_physical_pages.contains(index));
-    auto physical_page = allocate_supervisor_physical_page();
-    if (!physical_page)
-        return nullptr;
-    page_directory.m_physical_pages.set(index, physical_page);
-    return physical_page;
-}
-
 PageTableEntry& MemoryManager::ensure_pte(PageDirectory& page_directory, VirtualAddress vaddr)
 {
     ASSERT_INTERRUPTS_DISABLED();
@@ -186,7 +176,7 @@ PageTableEntry& MemoryManager::ensure_pte(PageDirectory& page_directory, Virtual
             pde.set_writable(true);
         } else {
             //ASSERT(&page_directory != m_kernel_page_directory.ptr());
-            auto page_table = allocate_page_table(page_directory, page_directory_index);
+            auto page_table = allocate_supervisor_physical_page();
 #ifdef MM_DEBUG
             dbgprintf("MM: PD K%x (%s) at P%x allocated page table #%u (for V%p) at P%x\n",
                 &page_directory,

+ 0 - 2
Kernel/VM/MemoryManager.h

@@ -104,8 +104,6 @@ private:
     void flush_entire_tlb();
     void flush_tlb(VirtualAddress);
 
-    RefPtr<PhysicalPage> allocate_page_table(PageDirectory&, unsigned index);
-
     void map_protected(VirtualAddress, size_t length);
 
     void create_identity_mapping(PageDirectory&, VirtualAddress, size_t length);