diff options
| author | Miguel <m.i@gmx.at> | 2018-09-10 01:41:28 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-10 01:41:28 +0200 |
| commit | 67e7f93fc2ea9c6d04698f9af29be78d0123afb0 (patch) | |
| tree | 8affeecb23719c39f8494eb87c1576b1f0d35c55 /kernel/mem.c | |
| parent | 88c5873713a4eda47d299abd9cecaa49221ec9fe (diff) | |
start fixing virtual memory manager... (might take a while)v0.1
Diffstat (limited to 'kernel/mem.c')
| -rw-r--r-- | kernel/mem.c | 11 |
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); |
