veridian_kernel/
serial.rs1use core::fmt;
8
9#[cfg(target_arch = "aarch64")]
10pub use crate::arch::aarch64::serial::*;
11#[cfg(target_arch = "riscv64")]
12pub use crate::arch::riscv64::serial::*;
13#[cfg(target_arch = "x86_64")]
15pub use crate::arch::x86_64::serial::*;
16
17#[macro_export]
19macro_rules! serial_print {
20 ($($arg:tt)*) => {
21 $crate::serial::_serial_print(format_args!($($arg)*))
22 };
23}
24
25#[macro_export]
26macro_rules! serial_println {
27 () => ($crate::serial_print!("\n"));
28 ($($arg:tt)*) => {
29 $crate::serial_print!("{}\n", format_args!($($arg)*))
30 };
31}
32
33#[doc(hidden)]
35pub fn _serial_print(args: fmt::Arguments) {
36 #[cfg(target_arch = "x86_64")]
37 crate::arch::x86_64::serial::_serial_print(args);
38
39 #[cfg(target_arch = "aarch64")]
40 crate::arch::aarch64::serial::_serial_print(args);
41
42 #[cfg(target_arch = "riscv64")]
43 crate::arch::riscv64::serial::_serial_print(args);
44}