From f2b4acb2fe6a366288b19843e0d2678b8590bdf4 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Sun, 25 Apr 2021 13:43:14 +0200 Subject: Chu chuu, using the bus for everything now! Well, I know: bus != train. But I like trains. So I don't care. Go away! --- kernel/features/logger.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 kernel/features/logger.c (limited to 'kernel/features/logger.c') diff --git a/kernel/features/logger.c b/kernel/features/logger.c new file mode 100644 index 0000000..7db9a82 --- /dev/null +++ b/kernel/features/logger.c @@ -0,0 +1,42 @@ +// MIT License, Copyright (c) 2021 Marvin Borner + +#include +#include +#include +#include +#include +#include +#include +#include + +static res logger_write(const void *buf, u32 offset, u32 count) +{ + if (offset) + return -EINVAL; + + if (!count) + return EOK; + + print_prefix(); + + u32 i; + stac(); + for (i = 0; i < count; i++) { + if (!((const u8 *)buf)[i]) + break; + + serial_put(((const u8 *)buf)[i]); + } + clac(); + + serial_print("\x1B[0m"); + + return i; +} + +void logger_install(void) +{ + struct io_dev *dev = zalloc(sizeof(*dev)); + dev->write = logger_write; + io_add(IO_LOGGER, dev); +} -- cgit v1.2.3