Fixed calculation of kernel binary size in initialize()

This commit is contained in:
2021-04-17 04:57:12 -05:00
parent 55c5db056e
commit 7c0c5cd8ce

View File

@@ -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);