summaryrefslogtreecommitdiff
path: root/kernel/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/mem.c')
-rw-r--r--kernel/mem.c40
1 files changed, 37 insertions, 3 deletions
diff --git a/kernel/mem.c b/kernel/mem.c
index b761c8c..4896272 100644
--- a/kernel/mem.c
+++ b/kernel/mem.c
@@ -38,6 +38,39 @@ int mmap_test(int bit)
return _mmngr_memory_map[bit / 32] & (1 << (bit % 32));
}
+void mmap_show_free ()
+{
+
+ int last_pos=0;
+ uint32_t last=_mmngr_memory_map[0];
+
+ for (int i=1; i< MEM_BITMAP_SIZE ; i++)
+ {
+ if (_mmngr_memory_map[i] != last||i==MEM_BITMAP_SIZE-1)
+ {
+
+ if(last==0)
+ {
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"%d -%d free",last_pos*32,i*32);
+ }
+ else if(last==0xffffffff)
+ {
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"%d -%d full",last_pos*32,i*32);
+ }
+ else
+ {
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"%d -%d some free",last_pos*32,i*32);
+ }
+
+ last_pos=i;
+ last=_mmngr_memory_map[i];
+
+
+ }
+ }
+
+}
+
//
int mmap_first_free ()
{
@@ -61,6 +94,7 @@ int mmap_first_free ()
}
+
void pmmngr_init ()
{
//! By default, all of memory is in use
@@ -107,7 +141,7 @@ void* pmmngr_alloc_block ()
if (frame == -1)
{
- scr_put_string_nl("OUT OF MEM!");
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"OUT OF MEMORY");
return 0; //out of memory
}
@@ -231,7 +265,7 @@ void mem_init(uint16_t *memmap,uint16_t entries)
#ifdef MEM_PRINT_MEMORYMAP
- log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"%x : 0x%08x - 0x%08x",
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"type: %02d / range: 0x%08x - 0x%08x",
memmap[8],
(((uint32_t)memmap[1])<<16)+memmap[0],
(((uint32_t)memmap[1])<<16)+memmap[0]
@@ -249,7 +283,7 @@ void mem_init(uint16_t *memmap,uint16_t entries)
}
- log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Available Mem: %d bytes.",avail_mem);
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Available Mem: %d bytes. (~%d MB)",avail_mem,avail_mem/1024/1024);
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Available 4K blocks: %d blocks.",mem_free_blocks);
}