From 7c0c5cd8ce052f111c3c9dcb428d8cb45494923e Mon Sep 17 00:00:00 2001 From: ngiddings Date: Sat, 17 Apr 2021 04:57:12 -0500 Subject: [PATCH] Fixed calculation of kernel binary size in initialize() --- src/x86/quark_x86.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/x86/quark_x86.c b/src/x86/quark_x86.c index 7f8d281..af3293c 100644 --- a/src/x86/quark_x86.c +++ b/src/x86/quark_x86.c @@ -26,7 +26,7 @@ int initialize(void *multiboot_info) initialize_idt(); initialize_allocator(&_kernel_end, (void*)0xFFC00000); static struct page_stack_t page_stack; - struct memory_region_t map_array[16]; + struct memory_region_t map_array[24]; char bootloader_name[64]; char kernel_parameters[64]; struct boot_info_t boot_info = { @@ -36,14 +36,14 @@ int initialize(void *multiboot_info) .map = { .array = map_array, .size = 0, - .capacity = 16}}; + .capacity = 24}}; void *multiboot_end = multiboot_info + *(uint32_t*)multiboot_info; multiboot_info += 8; while (multiboot_info != NULL) { multiboot_info = read_multiboot_table(&boot_info, multiboot_info); } - insert_region(&boot_info.map, (physaddr_t)&_kernel_pstart, (physaddr_t)&_kernel_pend, M_UNAVAILABLE); + insert_region(&boot_info.map, (physaddr_t)&_kernel_pstart, (physaddr_t)&_kernel_pend - (physaddr_t)&_kernel_pstart, M_UNAVAILABLE); for(void *p = (void*)&_kernel_end; p < multiboot_end; p += page_size) { unmap_page(p);