From 639478391b7b09c7443b4f641d3dbdab590a1320 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 22 Jun 2019 22:45:16 +0200 Subject: [PATCH] Kernel: Colorize debugger output from the kernel. This makes it easy to distinguish kernel/userspace dbgprintf()'s. :^) --- Kernel/kprintf.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Kernel/kprintf.cpp b/Kernel/kprintf.cpp index 9605d2cfec..48a49d6b3e 100644 --- a/Kernel/kprintf.cpp +++ b/Kernel/kprintf.cpp @@ -6,6 +6,22 @@ #include #include +static void color_on() +{ + IO::out8(0xe9, 0x1b); + IO::out8(0xe9, '['); + IO::out8(0xe9, '3'); + IO::out8(0xe9, '6'); + IO::out8(0xe9, 'm'); +} + +static void color_off() +{ + IO::out8(0xe9, 0x1b); + IO::out8(0xe9, '['); + IO::out8(0xe9, '0'); + IO::out8(0xe9, 'm'); +} static void console_putch(char*&, char ch) { if (!current) { @@ -17,10 +33,12 @@ static void console_putch(char*&, char ch) int kprintf(const char* fmt, ...) { + color_on(); va_list ap; va_start(ap, fmt); int ret = printf_internal(console_putch, nullptr, fmt, ap); va_end(ap); + color_off(); return ret; } @@ -44,11 +62,14 @@ static void debugger_putch(char*&, char ch) IO::out8(0xe9, ch); } + extern "C" int dbgprintf(const char* fmt, ...) { + color_on(); va_list ap; va_start(ap, fmt); int ret = printf_internal(debugger_putch, nullptr, fmt, ap); va_end(ap); + color_off(); return ret; }