aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/interrupts/isr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/interrupts/isr.c')
-rw-r--r--src/kernel/interrupts/isr.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/kernel/interrupts/isr.c b/src/kernel/interrupts/isr.c
index 8b2a9e5..d89f581 100644
--- a/src/kernel/interrupts/isr.c
+++ b/src/kernel/interrupts/isr.c
@@ -3,7 +3,7 @@
#include <kernel/system.h>
#include <kernel/lib/string.h>
#include <kernel/lib/stdio.h>
-#include <kernel/paging/paging.h>
+#include <kernel/graphics/vesa.h>
// Install ISRs in IDT
void isrs_install()
@@ -117,10 +117,14 @@ void fault_handler(struct regs *r)
r->eip, r->eax, r->ebx, r->ecx, r->edx, r->esp, faulting_address, r->eflags, r->err_code, r->int_no,
exception_messages[r->int_no]
);
- serial_printf("%d", paging_get_flags(faulting_address));
// halt_loop(); // Idk loop?
char *message = (char *) exception_messages[r->int_no];
strcat(message, " Exception");
- panic(message);
+
+ // Show message if there wasn't an error in video memory
+ if (faulting_address != (uint32_t) fb)
+ panic(message);
+ else
+ halt_loop();
}
} \ No newline at end of file