1macro_rules! __kprint {
8 ($level:expr, $($arg:tt)*) => {
9 {
10 use $crate::kprint::kernel_writer::KernelWriter;
11 use $crate::kprint::log_entry::LogFlags;
12 use $crate::state::kstate::KSTATE;
13 if KSTATE.kprint.config().max_log_level() >= $level {
14 let mut w = KernelWriter::lock(
15 $level,
16 LogFlags::NEWLINE
17 );
18 let _ = core::fmt::write(&mut w, format_args!($($arg)*));
19 }
20 }
21 };
22}
23pub(crate) use __kprint;
24
25#[macro_export]
27macro_rules! kemerg {
28 ($($arg:tt)*) => {
29 $crate::kprint::macros::__kprint!($crate::kprint::log_entry::LogLevel::Emergency, $($arg)*);
30 };
31}
32
33#[macro_export]
35macro_rules! kalert {
36 ($($arg:tt)*) => {
37 $crate::kprint::macros::__kprint!($crate::kprint::log_entry::LogLevel::Alert, $($arg)*);
38 };
39}
40
41#[macro_export]
43macro_rules! kcrit {
44 ($($arg:tt)*) => {
45 $crate::kprint::macros::__kprint!($crate::kprint::log_entry::LogLevel::Critical, $($arg)*);
46 };
47}
48
49#[macro_export]
51macro_rules! kerror {
52 ($($arg:tt)*) => {
53 $crate::kprint::macros::__kprint!($crate::kprint::log_entry::LogLevel::Error, $($arg)*);
54 };
55}
56
57#[macro_export]
59macro_rules! kwarn {
60 ($($arg:tt)*) => {
61 $crate::kprint::macros::__kprint!($crate::kprint::log_entry::LogLevel::Warn, $($arg)*);
62 };
63}
64
65#[macro_export]
67macro_rules! knotice {
68 ($($arg:tt)*) => {
69 $crate::kprint::macros::__kprint!($crate::kprint::log_entry::LogLevel::Notice, $($arg)*);
70 };
71}
72
73#[macro_export]
75macro_rules! kinfo {
76 ($($arg:tt)*) => {
77 $crate::kprint::macros::__kprint!($crate::kprint::log_entry::LogLevel::Info, $($arg)*);
78 };
79}
80
81#[macro_export]
83macro_rules! kdebug {
84 ($($arg:tt)*) => {
85 {
86 #[cfg(feature = "debug-logging")]
87 $crate::kprint::macros::__kprint!($crate::kprint::log_entry::LogLevel::Debug, $($arg)*);
88 };
89 };
90}