1 #include <arch/x86/interrupts.h>
2 #include <lunaix/tty/tty.h>
3 #include <libc/stdio.h>
5 void panic_msg(const char* msg) {
6 tty_set_theme(VGA_COLOR_WHITE, VGA_COLOR_RED);
14 void panic (const char* msg, isr_param* param) {
16 sprintf(buf, "INT %u: (%x) [%p: %p] %s", param->vector, param->err_code, param->cs, param->eip, msg);
22 interrupt_handler(isr_param* param) {
23 switch (param->vector)
26 panic("Division by 0", param);
28 case FAULT_GENERAL_PROTECTION:
29 panic("General Protection", param);
31 case FAULT_PAGE_FAULT:
32 panic("Page Fault", param);
34 case LUNAIX_SYS_PANIC:
35 panic_msg((char*)(param->registers.edi));
39 panic("Unknown Interrupt", param);