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(not(feature = "common-os"))]
20 pub(crate) use self::aarch64::kernel::switch;
21 #[cfg(feature = "smp")]
22 pub(crate) use self::aarch64::kernel::application_processor_init;
23 pub(crate) use self::aarch64::kernel::{
24 get_processor_count,
25 };
26 pub use self::aarch64::mm::paging::{BasePageSize, PageSize};
27 } else if #[cfg(target_arch = "x86_64")] {
28 pub(crate) mod x86_64;
29 pub(crate) use self::x86_64::*;
30
31 pub(crate) use self::x86_64::kernel::apic::{
32 set_oneshot_timer,
33 wakeup_core,
34 };
35 #[cfg(all(target_os = "none", feature = "smp"))]
36 pub(crate) use self::x86_64::kernel::application_processor_init;
37 pub(crate) use self::x86_64::kernel::core_local;
38 pub(crate) use self::x86_64::kernel::gdt::set_current_kernel_stack;
39 pub(crate) use self::x86_64::kernel::interrupts;
40 #[cfg(feature = "pci")]
41 pub(crate) use self::x86_64::kernel::pci;
42 pub(crate) use self::x86_64::kernel::processor;
43 pub(crate) use self::x86_64::kernel::serial::SerialDevice;
44 pub(crate) use self::x86_64::kernel::scheduler;
45 pub(crate) use self::x86_64::kernel::switch;
46 #[cfg(target_os = "none")]
47 pub(crate) use self::x86_64::kernel::boot_processor_init;
48 pub(crate) use self::x86_64::kernel::{
49 get_processor_count,
50 };
51 pub use self::x86_64::mm::paging::{BasePageSize, PageSize};
52 #[cfg(feature = "common-os")]
53 pub use self::x86_64::mm::create_new_root_page_table;
54 #[cfg(feature = "common-os")]
55 pub use self::x86_64::kernel::{load_application, jump_to_user_land};
56 } else if #[cfg(target_arch = "riscv64")] {
57 pub(crate) mod riscv64;
58 pub(crate) use self::riscv64::*;
59
60 #[cfg(feature = "smp")]
61 pub(crate) use self::riscv64::kernel::application_processor_init;
62 #[cfg(feature = "pci")]
63 pub(crate) use self::riscv64::kernel::pci;
64 pub(crate) use self::riscv64::kernel::processor::{self, set_oneshot_timer, wakeup_core};
65 pub(crate) use self::riscv64::kernel::serial::SerialDevice;
66 pub(crate) use self::riscv64::kernel::{
67 boot_processor_init,
68 core_local,
69 get_processor_count,
70 interrupts,
71 scheduler,
72 switch,
73 };
74 pub use self::riscv64::mm::paging::{BasePageSize, PageSize};
75 }
76}