diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2025-02-04 19:34:26 +0530 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-02-04 19:36:47 +0530 |
commit | cb90318893b2bbbfa22c1d656b3fb74765c62615 (patch) | |
tree | 59b554917480864f58464625b541e7ab4e31c2a5 | |
parent | 1c84c1e838bddb1a85d1a708b22e9d488831f5b2 (diff) |
mm: virtual_mm: No need to check l_table_index
Since each directory can have only 1024 entries, we don't need to check
l_table_index or create any new tables.
-rw-r--r-- | kernel/kernel/kernel.cc | 19 | ||||
-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 | 2 |
4 files changed, 2 insertions, 26 deletions
diff --git a/kernel/kernel/kernel.cc b/kernel/kernel/kernel.cc index 9143bec..a4670a9 100644 --- a/kernel/kernel/kernel.cc +++ b/kernel/kernel/kernel.cc @@ -44,25 +44,6 @@ kernel_main(uint32_t magic, multiboot_info_t *multiboot_info) MemoryMap::load(multiboot_info); PhysicalMM::initialize(); VirtualMM::initialize(); - PageTableAllocator::prepare(); - - // uint32_t *page = (uint32_t *) VirtualMM::alloc_pages(1); - // printk("debug", "page(0x%x)", page); - - int *x = (int *) LibAlloc::kmalloc(14 * MiB); - for (uint32_t i = 0; i < 8192; i++) - x[i] = i; - printk("debug", "x(0x%x) *x(0x%x)", x, x[12]); - - int *y = (int *) LibAlloc::kmalloc(sizeof(int) * 8192); - for (uint32_t i = 0; i < 8192; i++) - y[i] = i; - printk("debug", "x(0x%x) *x(0x%x)", y, y[12]); - - int *z = (int *) LibAlloc::kmalloc(sizeof(int) * 8192); - for (uint32_t i = 0; i < 8192; i++) - z[i] = i; - printk("debug", "x(0x%x) *x(0x%x)", z, z[12]); printk("\nKernel", "Started."); diff --git a/kernel/mm/virtual_mm/page_table_allocator.cc b/kernel/mm/virtual_mm/page_table_allocator.cc index 3ec4896..6a2a07e 100644 --- a/kernel/mm/virtual_mm/page_table_allocator.cc +++ b/kernel/mm/virtual_mm/page_table_allocator.cc @@ -56,11 +56,6 @@ prepare(void) /* Initial table */ if (l_heap == NULL) make_table((uint32_t *) (7 * MiB)); - - /* If we're gonna run out of space, allocate a new table with the remaining - * page */ - if (l_table_index == 1023) - make_table(allocate()); } uint32_t * diff --git a/kernel/mm/virtual_mm/pages.cc b/kernel/mm/virtual_mm/pages.cc index 7778418..3eb403c 100644 --- a/kernel/mm/virtual_mm/pages.cc +++ b/kernel/mm/virtual_mm/pages.cc @@ -30,8 +30,6 @@ namespace VirtualMM void * alloc_pages(uint32_t n_pages) { - PageTableAllocator::prepare(); - uint32_t starting_address = (uint32_t) find_free_addresses(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 fc6bec6..2055481 100644 --- a/kernel/mm/virtual_mm/virtual_mm.cc +++ b/kernel/mm/virtual_mm/virtual_mm.cc @@ -105,6 +105,8 @@ initialize(void) switch_page_directory(l_page_directory); enable_paging(); + + PageTableAllocator::prepare(); } uint32_t * |