sparreal_kernel/io/
print.rs

1use core::fmt;
2
3use alloc::boxed::Box;
4use spin::Mutex;
5
6use crate::boot::debug;
7
8static STDOUT: Mutex<Option<Box<dyn fmt::Write + Send>>> = Mutex::new(None);
9
10pub fn stdout_use_debug() {
11    *STDOUT.lock() = Some(Box::new(debug::DebugWriter {}));
12}
13
14pub fn print(args: fmt::Arguments<'_>) {
15    let mut g = STDOUT.lock();
16
17    if let Some(ref mut writer) = *g {
18        let _ = writer.write_fmt(args);
19    }
20}