//! Logging (as in terms of console / serial output) #![allow(deprecated)] use { core::fmt::Write, limine::{TerminalRequest, TerminalResponse}, spin::{Lazy, Mutex}, uart_16550::SerialPort, }; pub static SERIAL_CONSOLE: Mutex = Mutex::new(unsafe { SerialPort::new(0x3F8) }); pub fn init() { SERIAL_CONSOLE.lock().init(); // Lazy::force(&TERMINAL_LOGGER); } pub fn log(args: core::fmt::Arguments<'_>) -> core::fmt::Result { x86_64::instructions::interrupts::without_interrupts(|| { // TERMINAL_LOGGER.lock().write_fmt(args)?; SERIAL_CONSOLE.lock().write_fmt(args) }) }