1cfg_select! {
4 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 }
26 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::serial::SerialDevice;
43 pub(crate) use self::x86_64::kernel::scheduler;
44 pub(crate) use self::x86_64::kernel::switch;
45 #[cfg(target_os = "none")]
46 pub(crate) use self::x86_64::kernel::boot_processor_init;
47 pub(crate) use self::x86_64::kernel::{
48 get_processor_count,
49 };
50 pub use self::x86_64::mm::paging::{BasePageSize, PageSize};
51 #[cfg(feature = "common-os")]
52 pub use self::x86_64::mm::create_new_root_page_table;
53 #[cfg(feature = "common-os")]
54 pub use self::x86_64::kernel::{load_application, jump_to_user_land};
55 }
56 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}