hermit/arch/
mod.rs
1cfg_if::cfg_if! {
4 if #[cfg(target_arch = "aarch64")] {
5 pub(crate) mod aarch64;
6 pub(crate) use self::aarch64::*;
7
8 #[cfg(target_os = "none")]
9 pub(crate) use self::aarch64::kernel::boot_processor_init;
10 pub(crate) use self::aarch64::kernel::core_local;
11 pub(crate) use self::aarch64::kernel::interrupts;
12 pub(crate) use self::aarch64::kernel::interrupts::wakeup_core;
13 #[cfg(feature = "pci")]
14 pub(crate) use self::aarch64::kernel::pci;
15 pub(crate) use self::aarch64::kernel::processor;
16 pub(crate) use self::aarch64::kernel::processor::set_oneshot_timer;
17 pub(crate) use self::aarch64::kernel::scheduler;
18 #[cfg(not(feature = "common-os"))]
19 pub(crate) use self::aarch64::kernel::switch;
20 #[cfg(feature = "smp")]
21 pub(crate) use self::aarch64::kernel::application_processor_init;
22 pub(crate) use self::aarch64::kernel::{
23 get_processor_count,
24 };
25 pub use self::aarch64::mm::paging::{BasePageSize, PageSize};
26 } else if #[cfg(target_arch = "x86_64")] {
27 pub(crate) mod x86_64;
28 pub(crate) use self::x86_64::*;
29
30 pub(crate) use self::x86_64::kernel::apic::{
31 set_oneshot_timer,
32 wakeup_core,
33 };
34 #[cfg(all(target_os = "none", feature = "smp"))]
35 pub(crate) use self::x86_64::kernel::application_processor_init;
36 pub(crate) use self::x86_64::kernel::core_local;
37 pub(crate) use self::x86_64::kernel::gdt::set_current_kernel_stack;
38 pub(crate) use self::x86_64::kernel::interrupts;
39 #[cfg(feature = "pci")]
40 pub(crate) use self::x86_64::kernel::pci;
41 pub(crate) use self::x86_64::kernel::processor;
42 pub(crate) use self::x86_64::kernel::scheduler;
43 pub(crate) use self::x86_64::kernel::switch;
44 #[cfg(target_os = "none")]
45 pub(crate) use self::x86_64::kernel::boot_processor_init;
46 pub(crate) use self::x86_64::kernel::{
47 get_processor_count,
48 };
49 pub use self::x86_64::mm::paging::{BasePageSize, PageSize};
50 #[cfg(feature = "common-os")]
51 pub use self::x86_64::mm::create_new_root_page_table;
52 #[cfg(feature = "common-os")]
53 pub use self::x86_64::kernel::{load_application, jump_to_user_land};
54 } else if #[cfg(target_arch = "riscv64")] {
55 pub(crate) mod riscv64;
56 pub(crate) use self::riscv64::*;
57
58 #[cfg(feature = "smp")]
59 pub(crate) use self::riscv64::kernel::application_processor_init;
60 #[cfg(feature = "pci")]
61 pub(crate) use self::riscv64::kernel::pci;
62 pub(crate) use self::riscv64::kernel::processor::{self, set_oneshot_timer, wakeup_core};
63 pub(crate) use self::riscv64::kernel::{
64 boot_processor_init,
65 core_local,
66 get_processor_count,
67 interrupts,
68 scheduler,
69 switch,
70 };
71 pub use self::riscv64::mm::paging::{BasePageSize, PageSize};
72 }
73}