Files
quark-kernel/src/x86/quark_x86.c

29 lines
758 B
C

#include "kernel.h"
#include "mmgr.h"
#include "x86/multiboot2.h"
#include "x86/idt.h"
#include "system.h"
void x86_startup(void *multiboot_info)
{
memory_region_t map_array[24];
char bootloader_name[64];
char kernel_parameters[64];
struct boot_info_t boot_info = {
.bootloader = bootloader_name,
.parameters = kernel_parameters,
.module_count = 0,
.map = {
.array = map_array,
.size = 0,
.capacity = 24}};
initialize_gdt();
initialize_idt();
void *multiboot_end = read_multiboot_table(&boot_info, multiboot_info);
for(void *p = (void*)&_kernel_end; p < multiboot_end; p += page_size)
{
unmap_page(p);
}
kernel_initialize(&boot_info);
}