userspace/target/operating_system/macros/
info.rs1pub struct Stdout;
2
3fn print(msg: &str) -> crate::Result {
4 let out = crate::target::operating_system::syscall::write(1, msg.as_ptr(), msg.len());
5
6 match out {
7 _ => Ok(crate::Ok::Target(crate::target::Ok::Info(32))),
8 }
9}
10
11impl core::fmt::Write for Stdout {
12 fn write_str(&mut self, s: &str) -> core::fmt::Result {
13 let _ = print(s);
14 Ok(())
15 }
16}
17
18#[macro_export]
19macro_rules! info {
20 (X $($arg:tt)*) => {{
21 }};
25 (S $($arg:tt)*) => {{
26 use core::fmt::Write;
27 let mut writer = $crate::stdout::Stdout;
28 let _ = write!(&mut writer, $($arg)*);
29 }};
30 ($($arg:tt)*) => {{
31
32 use core::fmt::Write;
36 let mut writer = crate::target::os::macros::info::Stdout;
37 let _ = write!(&mut writer, $($arg)*);
39 }};
40}
41
42#[macro_export]
43macro_rules! tinfo {
44 (X $($arg:tt)*) => {{
45 }};
49 (S $($arg:tt)*) => {{
50 use core::fmt::Write;
51 let mut writer = $crate::stdout::Stdout;
52 let _ = write!(&mut writer, $($arg)*);
53 }};
54 ($($arg:tt)*) => {{
55
56 use core::fmt::Write;
60 let mut writer = crate::target::os::macros::info::Stdout;
61 let _ = write!(&mut writer, $($arg)*);
63 }};
64}
65pub use info;
66pub use tinfo;