summaryrefslogtreecommitdiff
path: root/kernel/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/mem.c')
-rw-r--r--kernel/mem.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/kernel/mem.c b/kernel/mem.c
index f33b5d8..7c55a67 100644
--- a/kernel/mem.c
+++ b/kernel/mem.c
@@ -25,7 +25,7 @@ static uint32_t _mmngr_memory_map[PMMNGR_MAP_SIZE];
static uint32_t mem_free_blocks; //number of free blocks
static uint32_t mem_max_block; //index of highest usable block
-static uint32_t mem_min_block; //index of lowset block available to userspace
+static uint32_t mem_min_block; //index of lowset block available for alloc
char *memmap_type_to_string[]=
{
@@ -208,14 +208,18 @@ void mem_init(multiboot_information *info)
mem_min_block=mod->mod_end/PMMNGR_BLOCK_SIZE+1;
- 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)+1);
mod++;
}
}
// deinitialize kernel
- pmmngr_deinit_region(kernel_start,((uint32_t)kernel_end-(uint32_t)kernel_start)+1);
+ //pmmngr_deinit_region(kernel_start,((uint32_t)kernel_end-(uint32_t)kernel_start)+1);
+
+ // we deinit everything below mem_min_block anyway
+ pmmngr_deinit_region(0,mem_min_block*PMMNGR_BLOCK_SIZE);
+
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Usable ~%d / %d MB ",mem_free_blocks*4096/1024/1024,total_mem/1024/1024);