diff options
Diffstat (limited to 'kernel/lib')
-rw-r--r-- | kernel/lib/fputc.c | 11 | ||||
-rw-r--r-- | kernel/lib/panic.c | 16 |
2 files changed, 27 insertions, 0 deletions
diff --git a/kernel/lib/fputc.c b/kernel/lib/fputc.c new file mode 100644 index 0000000..ef9b6f6 --- /dev/null +++ b/kernel/lib/fputc.c @@ -0,0 +1,11 @@ +#include <lib.h> +#include <comus/drivers/tty.h> +#include <comus/drivers/uart.h> + +void fputc(FILE *stream, char c) +{ + (void)stream; // TODO: manage stream + uart_out(c); + tty_out(c); +} + diff --git a/kernel/lib/panic.c b/kernel/lib/panic.c new file mode 100644 index 0000000..403418f --- /dev/null +++ b/kernel/lib/panic.c @@ -0,0 +1,16 @@ +#include <lib.h> +#include <stdarg.h> +#include <comus/asm.h> + +__attribute__((noreturn)) void panic(const char *format, ...) +{ + cli(); + va_list list; + va_start(list, format); + printf("\n\n!!! PANIC !!!\n"); + vprintf(format, list); + printf("\n\n"); + + while (1) + halt(); +} |