2022-11-20 18:59:53 +03:00
|
|
|
#include "console.h"
|
2022-11-21 00:53:29 +03:00
|
|
|
#include "drivers/uart.h"
|
2026-04-07 23:07:51 +03:00
|
|
|
#include "drivers/vga.h"
|
2022-11-20 18:59:53 +03:00
|
|
|
|
2026-04-07 23:07:51 +03:00
|
|
|
void printk(const char *msg) {
|
2022-11-20 18:59:53 +03:00
|
|
|
vga_print_string(msg);
|
2022-11-21 00:53:29 +03:00
|
|
|
for (; *msg; ++msg) {
|
|
|
|
|
uartputc(*msg);
|
|
|
|
|
}
|
2022-11-20 18:59:53 +03:00
|
|
|
}
|
2022-11-20 22:17:13 +03:00
|
|
|
|
2026-04-07 23:07:51 +03:00
|
|
|
void panic(const char *msg) {
|
2022-11-21 00:53:29 +03:00
|
|
|
printk("\nKernel panic: ");
|
2022-11-20 22:17:13 +03:00
|
|
|
printk(msg);
|
2022-11-21 00:53:29 +03:00
|
|
|
asm("cli");
|
2022-11-20 22:17:13 +03:00
|
|
|
while (1) {
|
2026-04-06 05:20:00 +03:00
|
|
|
asm volatile("hlt");
|
2022-11-20 22:17:13 +03:00
|
|
|
}
|
|
|
|
|
}
|