diff --git a/kern/libkern/panic.c b/kern/libkern/panic.c index 3671b04..4f451b5 100644 --- a/kern/libkern/panic.c +++ b/kern/libkern/panic.c @@ -7,12 +7,11 @@ volatile int panicked = false; -__attribute__((visibility("hidden"))) -void __panic(const char *restrict fmt, ...) { +__attribute__((visibility("hidden"))) void __panic(const char *restrict fmt, ...) { va_list ap; va_start(ap, fmt); - (void)mini_vpprintf(stdout_puts, NULL, fmt, ap); + kvprintf(fmt, ap); va_end(ap); panicked = true; - while (true) asm volatile("wfi"); + for (;;) asm volatile("wfi"); } diff --git a/kern/libkern/stdio.c b/kern/libkern/stdio.c index 2375f1d..61b740a 100644 --- a/kern/libkern/stdio.c +++ b/kern/libkern/stdio.c @@ -1,5 +1,6 @@ #include #include +#include #include /** Helper routine to put characters into our uart device */ @@ -21,7 +22,12 @@ static int stdout_puts(char *s, int len, void *unused) { int kprintf(const char *restrict fmt, ...) { va_list ap; va_start(ap, fmt); - int ret = mini_vpprintf(stdout_puts, NULL, fmt, ap); + int ret = kvprintf(fmt, &ap); va_end(ap); return ret; } + +int kvprintf(const char *fmt, va_list ap) { + int ret = mini_vpprintf(stdout_puts, NULL, fmt, ap); + return ret; +} diff --git a/kern/libkern/stdio.h b/kern/libkern/stdio.h index 2602c87..29a4e70 100644 --- a/kern/libkern/stdio.h +++ b/kern/libkern/stdio.h @@ -1,8 +1,10 @@ #ifndef STDIO_H #define STDIO_H -int stdout_puts(char *s, int len, void *unused); +#include + int kprintf(const char *restrict format, ...); +int kvprintf(const char *fmt, va_list ap); // int fprintf(FILE *restrict stream, const char *restrict format, ...); // int dprintf(int fd, const char *restrict format, ...);