diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-09-06 18:07:30 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-09-06 18:07:30 +0800 |
| commit | 4820b2dd73543a6fbd5db547d009529d0fe11ccd (patch) | |
| tree | 86243e91da43f575a807f43f1ff4c359cf72e159 /kernel/src/init | |
| parent | 9c887d5428043bab7af259386d9bda5dd1fd59f8 (diff) | |
new: earlyprintk
Diffstat (limited to 'kernel/src/init')
| -rw-r--r-- | kernel/src/init/acpi.rs | 0 | ||||
| -rw-r--r-- | kernel/src/init/earlyprintk.rs | 24 |
2 files changed, 24 insertions, 0 deletions
diff --git a/kernel/src/init/acpi.rs b/kernel/src/init/acpi.rs new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/kernel/src/init/acpi.rs diff --git a/kernel/src/init/earlyprintk.rs b/kernel/src/init/earlyprintk.rs new file mode 100644 index 0000000..01c50fa --- /dev/null +++ b/kernel/src/init/earlyprintk.rs @@ -0,0 +1,24 @@ +use spin::{lazylock::LazyLock, mutex::Mutex}; + +use crate::io::output::serial::uart_16550::{SerialPortBitMask, Uart16550}; + +// TODO: use linkme instead +pub static EARLY_PRINTK_SERIAL: LazyLock<Mutex<Uart16550>> = LazyLock::new(|| { + Mutex::new(unsafe { Uart16550::init(SerialPortBitMask::COM1, [const { None }; 4]).unwrap() }) +}); + +#[macro_export] +macro_rules! printk { + ($($arg:tt)*) => ({ + use ::core::fmt::Write; + write!($crate::init::earlyprintk::EARLY_PRINTK_SERIAL.lock().coms[0].as_mut().unwrap(), $($arg)*) + }); +} + +#[macro_export] +macro_rules! printkln { + ($($arg:tt)*) => ({ + use ::core::fmt::Write; + writeln!($crate::init::earlyprintk::EARLY_PRINTK_SERIAL.lock().coms[0].as_mut().unwrap(), $($arg)*) + }); +} |
