aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/exceptions.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/exceptions.c')
-rw-r--r--src/kernel/exceptions.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/kernel/exceptions.c b/src/kernel/exceptions.c
index ded9e9b..11e45fb 100644
--- a/src/kernel/exceptions.c
+++ b/src/kernel/exceptions.c
@@ -1,9 +1,13 @@
#include "print.h"
-__attribute__((noreturn)) void exception_handler(void);
-void exception_handler() {
- print_set_color(PRINT_COLOR_RED, PRINT_COLOR_BLACK);
+__attribute__((noreturn)) void panic(const char *msg) {
+ print_set_color(PRINT_COLOR_BLACK, PRINT_COLOR_RED);
print_clear();
- printf("KERNEL EXCEPTION");
+ printf("PANIC!!\n\t%s", msg);
__asm__ volatile("cli; hlt");
+ while (1)
+ ;
}
+
+__attribute__((noreturn)) void exception_handler(void);
+void exception_handler() { panic("KERNEL EXCEPTION"); }