From 67e7f93fc2ea9c6d04698f9af29be78d0123afb0 Mon Sep 17 00:00:00 2001 From: Miguel Date: Mon, 10 Sep 2018 01:41:28 +0200 Subject: start fixing virtual memory manager... (might take a while) --- kernel/mem.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'kernel/mem.c') 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); -- cgit v1.2.3