From bb199ce587030f876752d04cd3eb78c98bf632fc Mon Sep 17 00:00:00 2001 From: Jonathan Turner Date: Wed, 29 Nov 2023 07:33:09 -0500 Subject: [PATCH] Testing add method with providing base and size. --- Part3/09_memory/kernel/kernel.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Part3/09_memory/kernel/kernel.c b/Part3/09_memory/kernel/kernel.c index 03ed3ec..05144f0 100644 --- a/Part3/09_memory/kernel/kernel.c +++ b/Part3/09_memory/kernel/kernel.c @@ -35,8 +35,21 @@ void user_input(char *input) { if (strcmp(input, "END") == 0) { kprint("Stopping the CPU. Bye!\n"); asm volatile("hlt"); - } else if (strcmp(input, "ADD") == 0) { - umem_head = add_node( umem_head, 0x10000, 0x100, true, global_id++); + // } else if (strcmp(input, "ADD") == 0) { + // umem_head = add_node( umem_head, 0x10000, 0x100, true, global_id++); + // } + } else if (strncmp(input, "ADD", 3) == 0) { + // Extract size and offset from the input + char size_str[10]; + char offset_str[10]; + sscanf(input, "ADD %s %s", size_str, offset_str); + + // Convert size and offset to integers + u32 size = atoi(size_str); + u32 offset = atoi(offset_str); + + // Add the node with the specified base register + umem_head = add_node(umem_head, offset, size, true, global_id++); } else if (strcmp(input, "LIST") == 0) { kprint("***** FORWARD ****\n"); print_list( umem_head, true);