From 2578105f6e365b43ee6dbb4770555ccf3089c2b9 Mon Sep 17 00:00:00 2001 From: Tianhao Wang Date: Thu, 18 Apr 2024 22:00:12 +0200 Subject: move io.rs into submodule --- src/io.rs | 44 -------------------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 src/io.rs (limited to 'src/io.rs') diff --git a/src/io.rs b/src/io.rs deleted file mode 100644 index 27be847..0000000 --- a/src/io.rs +++ /dev/null @@ -1,44 +0,0 @@ -use crate::machine::cgascr::CGAScreen; -use crate::machine::keyctrl::KeyboardController; -use core::fmt; -use lazy_static::lazy_static; -use spin::Mutex; -// TODO I want my own locking primitive for practice, instead of stock spin lock -lazy_static! { - pub static ref CGASCREEN_GLOBAL: Mutex = Mutex::new(CGAScreen::new()); - pub static ref KBCTL_GLOBAL: Mutex = Mutex::new(KeyboardController::new()); -} - -#[macro_export] -macro_rules! print { - ($($arg:tt)*) => ($crate::io::_print(format_args!($($arg)*))); -} -pub(crate) use print; - -#[macro_export] -macro_rules! println { - () => ($crate::print!("\n")); - ($($arg:tt)*) => (print!("{}\n", format_args!($($arg)*))); -} -pub(crate) use println; - -pub fn _print(args: fmt::Arguments) { - use core::fmt::Write; - CGASCREEN_GLOBAL.lock().write_fmt(args).unwrap(); -} - -pub fn clear_screen() { - CGASCREEN_GLOBAL.lock().clear(); -} - -pub fn set_attr(attr: u8) { - CGASCREEN_GLOBAL.lock().setattr(attr); -} - -pub fn print_welcome() { - println!("--RuStuBs--"); - println!(" _._ _,-'\"\"`-._ ~Meow"); - println!(" (,-.`._,'( |\\`-/|"); - println!(" `-.-' \\ )-`( , o o)"); - println!(" `- \\`_`\"'-"); -} -- cgit v1.2.3-70-g09d2