diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2025-02-05 11:03:05 +0530 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-02-05 11:03:05 +0530 |
commit | d19eaaef708a51d1ac6a89a86c14745ad948e6c8 (patch) | |
tree | 979badfc4ec53a3db71e9330752f88714eba319b | |
parent | d1d97094bc8e173a02b922aa050cbcda19361f59 (diff) |
mm: virtual_mm: find_free_addresses->find_free_pages
-rw-r--r-- | kernel/include/mm/virtual_mm.h | 2 | ||||
-rw-r--r-- | kernel/mm/virtual_mm/page_table_allocator.cc | 5 | ||||
-rw-r--r-- | kernel/mm/virtual_mm/pages.cc | 2 | ||||
-rw-r--r-- | kernel/mm/virtual_mm/virtual_mm.cc | 4 |
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); } |