aboutsummaryrefslogtreecommitdiff
path: root/src/print.rs
diff options
context:
space:
mode:
authorChristian Cunningham <cc@localhost>2022-08-18 20:37:09 -0700
committerChristian Cunningham <cc@localhost>2022-08-18 20:37:09 -0700
commit66ee8a34f3bcde31f9d5919f2e0e363ac11f4aca (patch)
tree7a63b38c6ea59d3058d0325d4d326a9b55390c32 /src/print.rs
parent6f1e6acb1a9775eef4b0d8879c102df86e207687 (diff)
Formatted printing to UART
Diffstat (limited to 'src/print.rs')
-rw-r--r--src/print.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/print.rs b/src/print.rs
new file mode 100644
index 0000000..932c655
--- /dev/null
+++ b/src/print.rs
@@ -0,0 +1,25 @@
+//! Printing
+use core::fmt;
+
+use crate::uart::UART_WRITER;
+use crate::console::interface::Write;
+
+#[doc(hidden)]
+pub fn _print(args: fmt::Arguments) {
+ UART_WRITER.write_fmt(args).unwrap();
+}
+
+/// Print without newline
+#[macro_export]
+macro_rules! print {
+ ($($arg:tt)*) => ($crate::print::_print(format_args!($($arg)*)));
+}
+
+/// Print with newline
+#[macro_export]
+macro_rules! println {
+ () => ($crate::print!("\n"));
+ ($($arg:tt)*) => ({
+ $crate::print::_print(format_args_nl!($($arg)*));
+ })
+}