// HARDWARE ABSTRACTION LAYER #include "cpu/gdt.h" #include "cpu/idt.h" #include "cpu/isrs.h" #include "cpu/irq.h" #include "clock/clock.h" #include "keyboard/keyboard.h" #include "mouse/mouse.h" #include #include void HalInitialize() { // Initialize cpu GdtInstall(); Log("%#[HAL] %#Installed GDT\n", ColorYellow, ColorLightGreen); IdtInstall(); Log("%#[HAL] %#Installed IDT\n", ColorYellow, ColorLightGreen); IsrsInstall(); Log("%#[HAL] %#Installed ISRs\n", ColorYellow, ColorLightGreen); IrqInstall(); Log("%#[HAL] %#Installed IRQs\n", ColorYellow, ColorLightGreen); // Start interrupts asm volatile ("sti"); Log("%#[HAL] %#Interrupts are started...\n", ColorYellow, ColorLightMagenta); // Install keyboard IrqInstallHandler(0, TimeHandler); IrqInstallHandler(1, KeyboardHandler); IrqInstallHandler(12, MouseHandler); KeyboardInstallA(); Log("%#[HAL] %#Installing keyboard... %#[1/2] ", ColorYellow, ColorLightGray, ColorLightGreen); KeyboardInstallB(); Log("%#[2/2]\n", ColorLightGreen); // Install mouse driver MouseInstall(); Log("%#[HAL] %#Installed mouse driver\n", ColorYellow, ColorLightGreen); // Install VFS VfsInstall(); }