summaryrefslogtreecommitdiff
path: root/kernel/io/panic.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/io/panic.c')
-rw-r--r--kernel/io/panic.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/io/panic.c b/kernel/io/panic.c
new file mode 100644
index 0000000..948542e
--- /dev/null
+++ b/kernel/io/panic.c
@@ -0,0 +1,16 @@
+#include <lib.h>
+#include <stdarg.h>
+#include <comus/asm.h>
+
+__attribute__((noreturn))
+void panic(const char *format, ...) {
+ cli();
+ va_list list;
+ va_start(list, format);
+ printf("\n\n!!! PANIC !!!\n");
+ vprintf(format, list);
+ printf("\n\n");
+
+ while (1)
+ halt();
+}