diff --git a/src/main.rs b/src/main.rs index cbe1e48d..db198632 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,15 +7,7 @@ mod vga_buffer; #[no_mangle] pub extern "C" fn _start() -> ! { - use core::fmt::Write; - vga_buffer::WRITER.lock().write_str("Hello again").unwrap(); - write!( - vga_buffer::WRITER.lock(), - ", some numbers: {} {}", - 42, - 1.337 - ) - .unwrap(); + println!("Hello World{}", "!"); loop {} } diff --git a/src/vga_buffer.rs b/src/vga_buffer.rs index c08b7d7a..265557d7 100644 --- a/src/vga_buffer.rs +++ b/src/vga_buffer.rs @@ -123,3 +123,20 @@ impl fmt::Write for Writer { Ok(()) } } + +#[macro_export] +macro_rules! print { + ($($arg:tt)*) => ($crate::vga_buffer::_print(format_args!($($arg)*))); +} + +#[macro_export] +macro_rules! println { + () => ($crate::print!("\n")); + ($($arg:tt)*) => ($crate::print!("{}\n", format_args!($($arg)*))); +} + +#[doc(hidden)] +pub fn _print(args: fmt::Arguments) { + use core::fmt::Write; + WRITER.lock().write_fmt(args).unwrap(); +}