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}