summaryrefslogtreecommitdiff
path: root/kernel/mem.c
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-10 01:41:28 +0200
committerMiguel <m.i@gmx.at>2018-09-10 01:41:28 +0200
commit67e7f93fc2ea9c6d04698f9af29be78d0123afb0 (patch)
tree8affeecb23719c39f8494eb87c1576b1f0d35c55 /kernel/mem.c
parent88c5873713a4eda47d299abd9cecaa49221ec9fe (diff)
start fixing virtual memory manager... (might take a while)v0.1
Diffstat (limited to 'kernel/mem.c')
-rw-r--r--kernel/mem.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/kernel/mem.c b/kernel/mem.c
index 79cfe9b..a0650c6 100644
--- a/kernel/mem.c
+++ b/kernel/mem.c
@@ -205,15 +205,22 @@ uint32_t mem_init(multiboot_information *info)
klog("mod 0x%08X-0x%08X : %s",
mod->mod_start,mod->mod_end, mod->string);
- pmmngr_deinit_region(mod->mod_start,((uint32_t)mod->mod_end-(uint32_t)mod->mod_start)+1);
+ pmmngr_deinit_region(mod->mod_start,((uint32_t)mod->mod_end-(uint32_t)mod->mod_start));
mod++;
}
}
- // deinitialize kernel
+ // deinitialize kernel simply with this:
pmmngr_deinit_region(kernel_start,((uint32_t)kernel_end-(uint32_t)kernel_start)+1);
+ // or better via ELF symbols: (TODO!)
+ if(info->flags&&1<<5)
+ {
+ fixme("parse ELF sections of our kernel.");
+ }
+ else kpanic("Can not find ELF symbols.");
+
klog("Free 4K blocks: %d",mem_free_blocks);
klog("Usable ~%d / %d MB ",mem_free_blocks*4096/1024/1024,total_mem/1024/1024);