summaryrefslogtreecommitdiff
path: root/kernel/mem.c
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2015-05-13 23:58:39 +0200
committerMichal Idziorek <m.i@gmx.at>2015-05-13 23:58:39 +0200
commitb74c5c8fb4de3b2847bc942e57dcf8f0dea705be (patch)
treefa0a9001cffa64c9193689066bf296dc3df7f844 /kernel/mem.c
parent9a60edf72a3112adae4a914134da1adaf472ad5d (diff)
fixed libc and 'userspace'
Diffstat (limited to 'kernel/mem.c')
-rw-r--r--kernel/mem.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/mem.c b/kernel/mem.c
index 72b92af..f29c34f 100644
--- a/kernel/mem.c
+++ b/kernel/mem.c
@@ -102,10 +102,11 @@ int mmap_first_free_s (uint32_t x)
void pmmngr_init_region (uint32_t base, uint32_t size)
{
- if(base<0x100000)return;
uint32_t align = base / PMMNGR_BLOCK_SIZE +1; // TODO: calc properly
uint32_t blocks = size / PMMNGR_BLOCK_SIZE -1;
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"init blocks: 0x%08X 0x%08X",base,size);
+
for (; blocks>0; blocks--)
{
mmap_unset (align++);
@@ -253,6 +254,7 @@ void mem_init(uint32_t memmap,uint32_t length)
// deinitialize kernel + memory (TODO: modules)
pmmngr_deinit_region(kernel_start,((uint32_t)kernel_end-(uint32_t)kernel_start));
pmmngr_deinit_region(_mmngr_memory_map,mem_array_size*4+PMMNGR_BLOCK_SIZE);
+ pmmngr_deinit_region(0,0x700000);
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Usable Mem: %d (0x%X) bytes. (~%d MB)",total_mem,total_mem,total_mem/1024/1024);
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Currently Free 4K blocks: %d blocks.",mem_free_blocks);