summaryrefslogtreecommitdiff
path: root/kernel/lib/panic.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--kernel/lib/panic.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/kernel/lib/panic.c b/kernel/lib/panic.c
index 3a6e029..35ea0b1 100644
--- a/kernel/lib/panic.c
+++ b/kernel/lib/panic.c
@@ -1,6 +1,8 @@
#include <lib.h>
#include <stdarg.h>
#include <comus/asm.h>
+#include <comus/drivers/ps2.h>
+#include <comus/drivers/spkr.h>
__attribute__((noreturn)) void __panic(unsigned int line, const char *file,
const char *format, ...)
@@ -16,6 +18,17 @@ __attribute__((noreturn)) void __panic(unsigned int line, const char *file,
log_backtrace();
#endif
- while (1)
- halt();
+ fatal_loop();
+}
+
+__attribute__((noreturn)) void fatal_loop(void)
+{
+ while(1) {
+ spkr_play_tone(1000);
+ ps2_set_leds(0x4);
+ kspin_milliseconds(200);
+ spkr_quiet();
+ ps2_set_leds(0x0);
+ kspin_milliseconds(800);
+ }
}