From 7393db6692c861bc66164c0dd9b83f23a554775b Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Wed, 26 Nov 2014 23:17:55 +0100 Subject: changes, improvements and cleanup --- kernel/mem.c | 53 ++++++++++++++++++++++------------------------------- 1 file changed, 22 insertions(+), 31 deletions(-) (limited to 'kernel/mem.c') diff --git a/kernel/mem.c b/kernel/mem.c index cf0c673..ec99732 100644 --- a/kernel/mem.c +++ b/kernel/mem.c @@ -28,6 +28,7 @@ char *memmap_type_to_string[]= "ACPI NVS", "Bad Memory" }; + // bit funcs! void mmap_set(int bit) { @@ -126,6 +127,7 @@ void* pmmngr_alloc_block () mem_free_blocks--; uint32_t addr = frame * PMMNGR_BLOCK_SIZE; + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"alloc block (%d) 0x%08X)",frame,addr); return (void*)addr; } @@ -164,6 +166,8 @@ void pmmngr_free_block (void* p) mmap_unset (frame); mem_free_blocks++; } + + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"free block (%d) 0x%08X)",frame,addr); } @@ -172,59 +176,46 @@ void mem_init(uint16_t *memmap,uint16_t entries) // log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"the memory map contains %d entries.",entries); // count available mem - uint32_t total_mem=0, highest_end=0, high_end_low=0,last_end=0; + uint32_t total_mem=0, highest_end; - // preserve pointer - uint16_t save=memmap; + //save pointer to memmap + uint16_t *save=memmap; //print memory map and calc blocks. for(int i=0;ihighest_end) - { - highest_end=high_end; - high_end_low=last_end; - } - } - else - { - last_end=high_end+1; } - memmap+=12; - + memmap+=12; // next entry; } - // restore pointer - memmap=save; int blocks=highest_end/4096+1; mem_array_size=blocks/32+1; - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Highest end area: 0x%08X - 0x%08X",high_end_low,highest_end); - if(highest_end-high_end_low