#include "../drivers/vga.h" #include "../drivers/serial.h" #include "../drivers/timer.h" #include "gdt.h" #include "idt.h" #include "pic.h" #include "logger.h" void kernel_main(void) { log_info(LOG_NORMAL, "Initializing serial..."); serial_init(); log_info(LOG_NORMAL, "Initializing VGA..."); vga_init(); log_info(LOG_NORMAL, "Setting color white on black"); vga_set_color(VGA_COLOR_WHITE, VGA_COLOR_BLACK); log_info(LOG_NORMAL, "Initializing GDT..."); gdt_init(); log_info(LOG_NORMAL, "Initializing IDT..."); idt_init(); log_info(LOG_NORMAL, "Remapping PIC..."); pic_remap(32, 40); log_info(LOG_NORMAL, "Unmasking IRQ 0... (timer)"); pic_clear_mask(0); log_info(LOG_NORMAL, "Unmasking IRQ 1... (keyboard)"); pic_clear_mask(1); log_info(LOG_NORMAL, "Registering timer at 100Hz"); timer_init(100); log_info(LOG_NORMAL, "Enabling IRQ..."); __asm__ __volatile__("sti"); while (1); }