aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-02-05 11:03:05 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-02-05 11:03:05 +0530
commitd19eaaef708a51d1ac6a89a86c14745ad948e6c8 (patch)
tree979badfc4ec53a3db71e9330752f88714eba319b
parentd1d97094bc8e173a02b922aa050cbcda19361f59 (diff)
mm: virtual_mm: find_free_addresses->find_free_pages
-rw-r--r--kernel/include/mm/virtual_mm.h2
-rw-r--r--kernel/mm/virtual_mm/page_table_allocator.cc5
-rw-r--r--kernel/mm/virtual_mm/pages.cc2
-rw-r--r--kernel/mm/virtual_mm/virtual_mm.cc4
4 files changed, 6 insertions, 7 deletions
diff --git a/kernel/include/mm/virtual_mm.h b/kernel/include/mm/virtual_mm.h
index 5230f03..818ce8b 100644
--- a/kernel/include/mm/virtual_mm.h
+++ b/kernel/include/mm/virtual_mm.h
@@ -102,7 +102,7 @@ void unmap_page(void *virtual_address);
/*
* Find a virtual address with n consecutive free addresses.
*/
-void *find_free_addresses(uint32_t n_pages);
+void *find_free_pages(uint32_t n_pages);
/*
* Allocate and map n pages.
diff --git a/kernel/mm/virtual_mm/page_table_allocator.cc b/kernel/mm/virtual_mm/page_table_allocator.cc
index a72cbe3..057724c 100644
--- a/kernel/mm/virtual_mm/page_table_allocator.cc
+++ b/kernel/mm/virtual_mm/page_table_allocator.cc
@@ -39,8 +39,7 @@ make_table(uint32_t *table_address)
table[i] = PTE_FRAME((uint32_t) PhysicalMM::allocate_block())
| PTE_PRESENT(1) | PTE_WRITABLE(1);
- /* TODO: Just find an unused pd_entry instead */
- void *starting_address = VirtualMM::find_free_addresses(4 * KiB);
+ void *starting_address = VirtualMM::find_free_pages(1);
uint32_t *pd_entry = &l_page_directory[GET_PD_INDEX(starting_address)];
*pd_entry = PDE_FRAME((uint32_t) table) | PDE_PRESENT(1) | PDE_WRITABLE(1);
@@ -52,7 +51,7 @@ void
initialize(void)
{
/* We can't just do this in allocate() because make_table() depends on
- * VirtualMM::find_free_addresses() */
+ * VirtualMM::find_free_pages() */
if (l_page_directory != VirtualMM::get_page_directory())
l_page_directory = VirtualMM::get_page_directory();
diff --git a/kernel/mm/virtual_mm/pages.cc b/kernel/mm/virtual_mm/pages.cc
index 3eb403c..6046dea 100644
--- a/kernel/mm/virtual_mm/pages.cc
+++ b/kernel/mm/virtual_mm/pages.cc
@@ -30,7 +30,7 @@ namespace VirtualMM
void *
alloc_pages(uint32_t n_pages)
{
- uint32_t starting_address = (uint32_t) find_free_addresses(n_pages);
+ uint32_t starting_address = (uint32_t) find_free_pages(n_pages);
if (!starting_address)
return NULL;
diff --git a/kernel/mm/virtual_mm/virtual_mm.cc b/kernel/mm/virtual_mm/virtual_mm.cc
index b99b5ec..3ba0735 100644
--- a/kernel/mm/virtual_mm/virtual_mm.cc
+++ b/kernel/mm/virtual_mm/virtual_mm.cc
@@ -169,7 +169,7 @@ unmap_page(void *virtual_address)
}
void *
-find_free_addresses(uint32_t n)
+find_free_pages(uint32_t n_pages)
{
/* Skip the first two page directory entries; we don't wanna touch the first
* 8MiB. */
@@ -217,7 +217,7 @@ find_free_addresses(uint32_t n)
* (count += 4096, since we know that the table is not present) */
count++;
- if (count == n)
+ if (count == n_pages)
return (void *) VIRTUAL_ADDRESS(starting_pd_index,
starting_pt_index);
}