@@ -13,6 +13,42 @@ void abort() {
13
13
panic_abort ();
14
14
}
15
15
16
+ static void kekw () {
17
+ // clang-format off
18
+ char const * const msg =
19
+ "======+++++++***************####**++++++========" "\n"
20
+ "=--:::----:-==++*****+++++==++++*+====---=======" "\n"
21
+ "-::........::-==++++++===--:::.:::::::-=========" "\n"
22
+ ":::----=---:::-====++===--:::...::-=============" "\n"
23
+ "--==+++++=+++=::--==+++=----==+++++***+++=======" "\n"
24
+ ":. :----======+#*++===-===---:.:::::--=====" "\n"
25
+ "=----===+++++======+**++++=====--::-===---------" "\n"
26
+ "==----:-==========++++++++++++====++++**++====++" "\n"
27
+ "========+++========+++++++++++++++=======+++=+++" "\n"
28
+ "=====++++++========++++====+++***++++++**#*+++++" "\n"
29
+ "=====++++++=======++====-=====+*##******##*+++++" "\n"
30
+ "===+++++=======+++**+==-=========*#######*++++++" "\n"
31
+ "=========-===---========+++=--=*+==+****++++++++" "\n"
32
+ "---====--==:...:----::. .::::=========+++======" "\n"
33
+ "-------:--:..........:::::::::::::-=--==========" "\n"
34
+ "--------:. .. ....:-:. .::...:::..::----========" "\n"
35
+ "-------:...........--....::...::...::::---======" "\n"
36
+ "------:. .........-===:.:::...:::......:---=====" "\n"
37
+ "-----=-. .... .. ..........:::::::. :--====" "\n"
38
+ "------=-::-...+##= ::-:-=====" "\n"
39
+ "::::--====-=+: :::......:--=----:.-----====-" "\n"
40
+ ".::----==--=+=--=+++**********++==---===--===---" "\n"
41
+ ".:-:-=--===-==--=+****++++++++++=--=*===-====---" "\n"
42
+ "..:-:==-======---=++++++++====---===+========---" "\n"
43
+ "..:---==-=====---==========+#*=--==+++=======--=" "\n"
44
+ "...--:=+===---============++++=====++=======---=" "\n" ;
45
+ // clang-format on
46
+ // c9 8d 74
47
+ rawprint ("\033[38;2;201;141;116m\n\n" );
48
+ rawprint (msg );
49
+ rawprint ("\033[0m\n\n" );
50
+ }
51
+
16
52
// Call this function when and only when the kernel has encountered a fatal error.
17
53
// Prints register dump for current kernel context and jumps to `panic_poweroff`.
18
54
void panic_abort () {
@@ -27,6 +63,7 @@ void panic_abort() {
27
63
// Immediately power off or reset the system.
28
64
void panic_poweroff () {
29
65
rawprint ("**** KERNEL PANIC ****\nhalted\n" );
66
+ kekw ();
30
67
asm volatile ("csrci " CSR_STATUS_STR ", %0" ::"ri" (1 << CSR_STATUS_IE_BIT ));
31
68
while (1 ) asm volatile ("wfi" );
32
69
}
0 commit comments