42_KFS/src/kpanic.c

27 lines
612 B
C
Raw Normal View History

2024-09-22 03:54:56 -04:00
#include "debug.h"
#include "keyboard.h"
#include "kprintf.h"
#include "power.h"
#include "terminal.h"
void kpanic(const char *format, ...)
{
va_list va;
/* terminal_set_bg_color(VGA_COLOR_BLUE); */
/* terminal_clear(); */
2024-09-22 03:54:56 -04:00
va_start(va, format);
kvprintf(format, va);
va_end(va);
uint32_t faulting_address;
__asm__ __volatile__("mov %%cr2, %0" : "=r"(faulting_address));
kprintf("fault at address: %p\n", faulting_address);
/* kprintf("\n\n"); */
/* print_stack(); */
/* kprintf("\n\n"); */
/* kprintf("PRESS SPACE TO REBOOT"); */
2024-09-22 03:54:56 -04:00
while (terminal_getkey().scan_code != KEY_SPACE)
;
reboot();
}