diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-04-21 23:21:47 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-04-21 23:21:47 +0800 |
| commit | 510f295124f7c8e51ec66f59be61a9e9aa8f9d25 (patch) | |
| tree | 04e72eb4da8ace182f419599e2d6a06f87113209 /na/lib/panic.cc | |
| parent | 1768a553c054b3e4774daaeda6c44f511ca7077a (diff) | |
| download | lume-510f295124f7c8e51ec66f59be61a9e9aa8f9d25.tar.gz lume-510f295124f7c8e51ec66f59be61a9e9aa8f9d25.tar.xz | |
feat: add minimal C++ ABI stubs for freestanding kernel
Diffstat (limited to 'na/lib/panic.cc')
| -rw-r--r-- | na/lib/panic.cc | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/na/lib/panic.cc b/na/lib/panic.cc index 4745272..753f910 100644 --- a/na/lib/panic.cc +++ b/na/lib/panic.cc @@ -11,21 +11,9 @@ */ #include <lume/types.h> +#include <lume/addr.h> #include <arch/cpu.h> - -// Minimal direct UART output (same as main.cc early boot) -// This can be used by other early-boot code before console_init() - -constexpr uint64 kUart0VA = 0x10000000UL + 0xFFFFFFC000000000ULL; - -extern "C" void early_putc(char c) { - volatile auto* uart = reinterpret_cast<volatile uint8*>(kUart0VA); - *uart = static_cast<uint8>(c); -} - -extern "C" void early_puts(const char* s) { - while (*s) early_putc(*s++); -} +#include <lume/console.h> extern "C" [[noreturn]] void kernel_panic(const char* msg, const char* detail) { arch::cpu::intr_off(); |
