diff --git a/Cargo.lock b/Cargo.lock index a598a34c..811e3cf8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -293,6 +293,7 @@ dependencies = [ "aarch64-cpu", "align-address", "allocator-api2", + "cfg-if", "exclusive_cell", "fdt", "goblin", diff --git a/Cargo.toml b/Cargo.toml index 39a6199e..0085e1cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ edition = "2021" [dependencies] align-address = "0.1" +cfg-if = "1" hermit-entry = { version = "0.9", features = ["loader"] } log = "0.4" one-shot-mutex = "0.1" diff --git a/src/arch/riscv64/start.rs b/src/arch/riscv64/start.rs index d0060d34..c93b951e 100644 --- a/src/arch/riscv64/start.rs +++ b/src/arch/riscv64/start.rs @@ -52,7 +52,7 @@ extern "C" fn start(hart_id: usize, fdt: *const u8) -> ! { HART_ID.store(hart_id, Ordering::Relaxed); FDT.store(fdt.cast_mut(), Ordering::Relaxed); - unsafe { crate::none::loader_main() } + unsafe { crate::os::loader_main() } } // Align to page size diff --git a/src/main.rs b/src/main.rs index 0ab6cc66..a29ae8d0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,10 +14,7 @@ mod arch; mod console; #[cfg(target_os = "none")] mod log; -#[cfg(target_os = "none")] -mod none; -#[cfg(target_os = "uefi")] -mod uefi; +mod os; #[cfg(any( target_os = "uefi", diff --git a/src/os/mod.rs b/src/os/mod.rs new file mode 100644 index 00000000..6c1a4924 --- /dev/null +++ b/src/os/mod.rs @@ -0,0 +1,11 @@ +#![allow(unused_imports)] + +cfg_if::cfg_if! { + if #[cfg(target_os = "none")] { + mod none; + pub use self::none::*; + } else if #[cfg(target_os = "uefi")] { + mod uefi; + pub use self::uefi::*; + } +} diff --git a/src/none.rs b/src/os/none.rs similarity index 100% rename from src/none.rs rename to src/os/none.rs diff --git a/src/uefi.rs b/src/os/uefi.rs similarity index 100% rename from src/uefi.rs rename to src/os/uefi.rs