#include "printf.h" #include "gdt.h" #include "idt.h" #include "irq.h" void main() { printf("main()\n"); gdt_init(); printf("GDT set.\n"); idt_init(); printf("IDT set.\n"); irq_init(); printf("IRQs set.\n"); asm volatile("sti"); asm volatile( "push $0x23\n" "push $entry_stack_top\n" "pushf\n" "push $0x1b\n" "push $0x0010a000\n" "iret\n" ); printf("Halting.\n"); asm volatile( "cli\n" "hlt\n" ); while(1); }