peredOS/kernel/kmain.c

31 lines
953 B
C

#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);
}