From 14fe03569a02caeb2b9bcc21c65caa5abb67139e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filiph=20Sandstr=C3=B6m?= Date: Wed, 10 Aug 2022 23:50:59 +0200 Subject: [PATCH] Kernel: Add support for displaying critical output on aarch64 --- Kernel/Arch/aarch64/kprintf.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Kernel/Arch/aarch64/kprintf.cpp b/Kernel/Arch/aarch64/kprintf.cpp index 9da8905bc0..fabe86a0c5 100644 --- a/Kernel/Arch/aarch64/kprintf.cpp +++ b/Kernel/Arch/aarch64/kprintf.cpp @@ -22,6 +22,13 @@ static void console_out(char ch) } } +static void critical_console_out(char ch) +{ + if (auto* boot_console = g_boot_console.load()) { + boot_console->write(ch, true); + } +} + void kernelputstr(char const* characters, size_t length) { if (!characters) @@ -41,6 +48,9 @@ void kernelcriticalputstr(char const* characters, size_t length) auto& uart = Kernel::RPi::UART::the(); uart.print_str(characters, length); + + for (size_t i = 0; i < length; ++i) + critical_console_out(characters[i]); } void kernelearlyputstr(char const* characters, size_t length) @@ -50,4 +60,7 @@ void kernelearlyputstr(char const* characters, size_t length) auto& uart = Kernel::RPi::UART::the(); uart.print_str(characters, length); + + for (size_t i = 0; i < length; ++i) + console_out(characters[i]); }