aboutsummaryrefslogtreecommitdiff
path: root/kernel/mm
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/mm')
-rw-r--r--kernel/mm/virtual_mm/pages.cc3
-rw-r--r--kernel/mm/virtual_mm/virtual_mm.cc9
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;