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::serial::SerialDevice;
17 pub(crate) use self::aarch64::kernel::processor::set_oneshot_timer;
18 pub(crate) use self::aarch64::kernel::scheduler;
19 #[cfg(feature = "smp")]
20 pub(crate) use self::aarch64::kernel::application_processor_init;
21 pub(crate) use self::aarch64::kernel::{
22 get_processor_count,
23 };
24 pub use self::aarch64::mm::paging::{BasePageSize, PageSize};
25 } else if #[cfg(target_arch = "x86_64")] {
26 pub(crate) mod x86_64;
27 pub(crate) use self::x86_64::*;
28
29 pub(crate) use self::x86_64::kernel::apic::{
30 set_oneshot_timer,
31 wakeup_core,
32 };
33 #[cfg(all(target_os = "none", feature = "smp"))]
34 pub(crate) use self::x86_64::kernel::application_processor_init;
35 pub(crate) use self::x86_64::kernel::core_local;
36 pub(crate) use self::x86_64::kernel::gdt::set_current_kernel_stack;
37 pub(crate) use self::x86_64::kernel::interrupts;
38 #[cfg(feature = "pci")]
39 pub(crate) use self::x86_64::kernel::pci;
40 pub(crate) use self::x86_64::kernel::processor;
41 pub(crate) use self::x86_64::kernel::serial::SerialDevice;
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::serial::SerialDevice;
64 pub(crate) use self::riscv64::kernel::{
65 boot_processor_init,
66 core_local,
67 get_processor_count,
68 interrupts,
69 scheduler,
70 switch,
71 };
72 pub use self::riscv64::mm::paging::{BasePageSize, PageSize};
73 }
74}