blob: 7f54f98a7f6e17930f0317b12c5047b38ffd9404 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include <panic.h>
#include <backtrace.h>
#include "serial.h"
#include "bindings.h"
_Noreturn void _panic_impl(char *line, char *file, char *msg) {
cli();
serial_out_str("\n\n!!! PANIC !!!\n");
serial_out_str("In file ");
serial_out_str(file);
serial_out_str(" at line ");
serial_out_str(line);
serial_out_str(":\n");
serial_out_str(msg);
serial_out_str("\n\n");
log_backtrace();
while (1) {
halt();
}
}
_Noreturn void panic_interrupt(void *ip, void *bp, char *msg) {
cli();
serial_out_str("\n\n!!! PANIC !!!\n");
serial_out_str(msg);
serial_out_str("\n\n");
log_backtrace_ex(ip, bp);
while (1) {
halt();
}
}
|