diff --git a/Part3/09_memory/kernel/kernel.c b/Part3/09_memory/kernel/kernel.c index 8811af6..fb39d4c 100644 --- a/Part3/09_memory/kernel/kernel.c +++ b/Part3/09_memory/kernel/kernel.c @@ -161,18 +161,16 @@ void print_holes(node* umem_head) { } u32 hole_ids = 0; node *hole = NULL; + if (umem_head->base_register-0x10000 != 0) { + hole = add_node( hole, 0x10000, umem_head->base_register-0x10000, true, ++hole_ids); + } while(umem_head != NULL) { - if (umem_head->previous == NULL) { - if (umem_head->base_register-0x10000 != 0) { - hole = add_node( hole, 0x10000, umem_head->base_register-0x10000, true, ++hole_ids); - } - } else if (umem_head->next == NULL) { - node *previous = umem_head->previous; - hole = add_node( hole, previous->base_register+previous->limit_register, -1, true, ++hole_ids); + if (umem_head->next != NULL) { + node *next = umem_head->next; + hole = add_node( hole, umem_head->base_register+umem_head->limit_register, next->base_register, true, ++hole_ids); } else { node *previous = umem_head->previous; - node *next = umem_head->next; - hole = add_node( hole, previous->base_register+previous->limit_register, next->base_register, true, ++hole_ids); + hole = add_node( hole, previous->base_register+previous->limit_register, -1, true, ++hole_ids); } umem_head = umem_head->next; }