diff --git a/Part3/09_memory/kernel/kernel.c b/Part3/09_memory/kernel/kernel.c index 28ef1db..ae79aff 100644 --- a/Part3/09_memory/kernel/kernel.c +++ b/Part3/09_memory/kernel/kernel.c @@ -161,18 +161,26 @@ void print_memory(node *umem_head, node *hole_head) { u32 total_memory = 0x3FFFF; - // u32 free_memory = total_memory; - // u32 total_allocated = total_memory - free_memory; - // - // int num_of_gaps = 0; - // int num_of_nodes = 0; - // while (umem_head + u32 free_memory = total_memory; + u32 total_allocated = total_memory - free_memory; + + int num_of_gaps = 0; + int num_of_nodes = 0; + while (umem_head != NULL) { + num_of_nodes++; + free_memory = free_memory - umem_head->limit_register; + umem_head = umem_head->next; + } + + while (hole_head != NULL) { + num_of_gaps++; + } char c[16]; - hex_to_ascii( total_memory, c, 16); + hex_to_ascii( total_memory/1024, c, 16); kprint("Total Physical Memory: "); kprint(c); - kprint("\n"); + kprint("kb\n"); print_list(umem_head, false); print_list(hole_head, false);