summaryrefslogtreecommitdiff
path: root/kernel/lib
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-04-03 23:38:33 -0400
committerFreya Murphy <freya@freyacat.org>2025-04-03 23:38:33 -0400
commit3c2a519ee9ab1ee5fcf043eb403242859b541d6b (patch)
treee5571b4732f1366e36c7da5ce08dcb4c18913f1e /kernel/lib
parentpci (diff)
downloadcomus-3c2a519ee9ab1ee5fcf043eb403242859b541d6b.tar.gz
comus-3c2a519ee9ab1ee5fcf043eb403242859b541d6b.tar.bz2
comus-3c2a519ee9ab1ee5fcf043eb403242859b541d6b.zip
serial and tty
Diffstat (limited to 'kernel/lib')
-rw-r--r--kernel/lib/fputc.c11
-rw-r--r--kernel/lib/panic.c16
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();
+}