| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- use crate::prelude::*;
- use alloc::sync::Arc;
- use lazy_static::lazy_static;
- lazy_static! {
- pub static ref CONSOLE: Spin<Option<Arc<Terminal>>> = Spin::new(None);
- }
- pub fn set_console(terminal: Arc<Terminal>) -> KResult<()> {
- let mut console = CONSOLE.lock();
- if console.is_none() {
- *console = Some(terminal);
- Ok(())
- } else {
- Err(EEXIST)
- }
- }
- pub fn get_console() -> Option<Arc<Terminal>> {
- let console = CONSOLE.lock();
- console.clone()
- }
- #[doc(hidden)]
- pub fn _print(args: core::fmt::Arguments) {
- // TODO!!!!!!!!!!!!!: REMOVE THIS AND USE `eonix_log`.
- eonix_log::do_print(args);
- }
- macro_rules! print {
- ($($arg:tt)*) => {
- $crate::kernel::console::_print(format_args!($($arg)*))
- };
- }
- macro_rules! println {
- () => {
- $crate::print!("\n")
- };
- ($($arg:tt)*) => {
- $crate::print!("{}\n", format_args!($($arg)*))
- };
- }
- macro_rules! println_warn {
- ($($arg:tt)*) => {
- $crate::println!("[kernel: warn] {}", format_args!($($arg)*))
- };
- }
- macro_rules! println_debug {
- ($($arg:tt)*) => {
- $crate::println!("[kernel:debug] {}", format_args!($($arg)*))
- };
- }
- #[allow(unused_macros)]
- macro_rules! println_info {
- ($($arg:tt)*) => {
- $crate::println!("[kernel: info] {}", format_args!($($arg)*))
- };
- }
- macro_rules! println_fatal {
- () => {
- $crate::println!("[kernel:fatal] ")
- };
- ($($arg:tt)*) => {
- $crate::println!("[kernel:fatal] {}", format_args!($($arg)*))
- };
- }
- macro_rules! println_trace {
- ($feat:literal) => {
- #[deny(unexpected_cfgs)]
- {
- #[cfg(feature = $feat)]
- $crate::println!("[kernel:trace] ")
- }
- };
- ($feat:literal, $($arg:tt)*) => {{
- #[deny(unexpected_cfgs)]
- {
- #[cfg(feature = $feat)]
- $crate::println!("[kernel:trace] {}", format_args!($($arg)*))
- }
- }};
- }
- use super::{constants::EEXIST, terminal::Terminal};
- pub(crate) use {
- print, println, println_debug, println_fatal, println_info, println_trace, println_warn,
- };
|