Page allocation uses new external library, libmalloc
This commit is contained in:
19
src/kernel.c
19
src/kernel.c
@@ -17,7 +17,10 @@ struct kernel_t kernel;
|
||||
|
||||
void kernel_initialize(struct boot_info_t *boot_info)
|
||||
{
|
||||
initialize_screen();
|
||||
if(initialize_screen())
|
||||
{
|
||||
asm("hlt");
|
||||
}
|
||||
printf("***%s***\n", PACKAGE_STRING);
|
||||
printf("Total memory: %08x\n", boot_info->memory_size);
|
||||
printf("kernel: %08x ... %08x\n", &_kernel_pstart, &_kernel_pend);
|
||||
@@ -27,9 +30,17 @@ void kernel_initialize(struct boot_info_t *boot_info)
|
||||
printf("%i\t\t\t%08x\t\t%u\n", boot_info->map.array[i].type, boot_info->map.array[i].location, boot_info->map.array[i].size);
|
||||
}
|
||||
|
||||
insert_region(&boot_info->map, (physaddr_t)&_kernel_pstart, (physaddr_t)&_kernel_pend - (physaddr_t)&_kernel_pstart, M_UNAVAILABLE);
|
||||
initialize_page_map(&boot_info->map, (physaddr_t*)&_kernel_end, boot_info->memory_size, page_size);
|
||||
kminit(&_kernel_start, page_map_end(), 0xFFC00000 - (size_t)&_kernel_start, 64);
|
||||
memmap_insert_region(&boot_info->map, (physaddr_t)&_kernel_pstart, (physaddr_t)&_kernel_pend - (physaddr_t)&_kernel_pstart, M_UNAVAILABLE);
|
||||
if(initialize_page_map(&boot_info->map, (physaddr_t*)&_kernel_end, boot_info->memory_size, page_size))
|
||||
{
|
||||
panic("Failed to initialize page allocator.");
|
||||
}
|
||||
|
||||
if(kminit(&_kernel_start, page_map_end(), 0xFFC00000 - (size_t)&_kernel_start, 64))
|
||||
{
|
||||
panic("Failed to initialize heap.");
|
||||
}
|
||||
|
||||
kernel.active_process = NULL;
|
||||
kernel.next_pid = 1;
|
||||
kernel.process_table = NULL;
|
||||
|
||||
Reference in New Issue
Block a user