1
0
Fork 0
forked from AbleOS/ableos
ableOS_v1Change/kernel/src/arch/aarch64/logging.rs

29 lines
692 B
Rust
Raw Normal View History

2023-09-17 17:13:23 -05:00
use {crate::logger::TERMINAL_LOGGER, core::fmt::Write, spin::Mutex};
2024-09-10 14:52:57 -05:00
pub static SERIAL_CONSOLE: Mutex<SerialConsole> = Mutex::new(SerialConsole {
2023-07-20 04:21:00 -05:00
uart: 0x09000000 as *mut u8,
});
2024-10-15 03:44:12 -05:00
pub struct SerialConsole {
2023-07-20 04:21:00 -05:00
uart: *mut u8,
}
impl core::fmt::Write for SerialConsole {
fn write_str(&mut self, s: &str) -> core::fmt::Result {
for c in s.chars() {
unsafe { *self.uart = c as u8 }
}
Ok(())
}
}
2024-09-10 14:52:57 -05:00
unsafe impl Sync for SerialConsole {}
unsafe impl Send for SerialConsole {}
2023-07-20 04:21:00 -05:00
pub fn log(args: core::fmt::Arguments<'_>) -> core::fmt::Result {
2023-09-17 17:13:23 -05:00
SERIAL_CONSOLE.lock().write_fmt(args)?;
2024-09-19 06:05:11 -05:00
// TERMINAL_LOGGER.lock().write_fmt(args)?;
2023-09-17 17:13:23 -05:00
Ok(())
2023-07-20 04:21:00 -05:00
}