diff options
Diffstat (limited to 'kernel/mm')
-rw-r--r-- | kernel/mm/virtual_mm/pages.cc | 3 | ||||
-rw-r--r-- | kernel/mm/virtual_mm/virtual_mm.cc | 9 |
2 files changed, 7 insertions, 5 deletions
diff --git a/kernel/mm/virtual_mm/pages.cc b/kernel/mm/virtual_mm/pages.cc index 5111ac7..1cf5ded 100644 --- a/kernel/mm/virtual_mm/pages.cc +++ b/kernel/mm/virtual_mm/pages.cc @@ -29,13 +29,14 @@ namespace VirtualMM void * alloc_pages(uint32_t n_pages) { + printk("virtual_mm", "Allocating 0x%x pages", n_pages); uint32_t starting_address = (uint32_t) find_free_addresses(n_pages); if (!starting_address) return NULL; for (uint32_t i = 0; i < n_pages; i++) { - void *virtual_address = (void *) (starting_address + (i * PAGE_SIZE)); void *physical_address = PhysicalMM::allocate_block(); + void *virtual_address = (void *) (starting_address + (i * PAGE_SIZE)); map_page(physical_address, virtual_address); } diff --git a/kernel/mm/virtual_mm/virtual_mm.cc b/kernel/mm/virtual_mm/virtual_mm.cc index 401113b..ee2e78a 100644 --- a/kernel/mm/virtual_mm/virtual_mm.cc +++ b/kernel/mm/virtual_mm/virtual_mm.cc @@ -102,14 +102,15 @@ uint32_t * make_table(uint32_t *pd_entry) { uint32_t *table = 0; - if (!kmalloc_initialized()) + if (!kmalloc_initialized()) { /* If we don't have a dynamic memory allocator yet (this will happen only * once, when we initialize the dynamic allocator), then we hard code the * next page table to be at 7MiB */ table = (uint32_t *) (7 * MiB); - else - // table = (uint32_t *) kmalloc(sizeof(uint32_t) * 1024); - ASSERT_NOT_REACHED(); + printk("virtual_mm", + "Using our hard coded table; this should happen only once."); + } else + table = (uint32_t *) kmalloc(sizeof(uint32_t) * 1024); for (uint32_t i = 0; i < 1024; i++) table[i] = 0x0; |