Skip to content

Commit

Permalink
refactor: use cfg-if for arch module
Browse files Browse the repository at this point in the history
Signed-off-by: Martin Kröning <[email protected]>
  • Loading branch information
mkroening committed Oct 9, 2023
1 parent fb2c376 commit e59db8d
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 60 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ ahash = { version = "0.8", default-features = false }
align-address = "0.1"
bit_field = "0.10"
bitflags = "2.4"
cfg-if = "1"
crossbeam-utils = { version = "0.8", default-features = false }
dyn-clone = "1.0"
hashbrown = { version = "0.14", default-features = false }
Expand Down
113 changes: 53 additions & 60 deletions src/arch/mod.rs
Original file line number Diff line number Diff line change
@@ -1,64 +1,57 @@
//! Architecture-specific architecture abstraction.
#[cfg(target_arch = "aarch64")]
pub mod aarch64;
cfg_if::cfg_if! {
if #[cfg(target_arch = "aarch64")] {
pub mod aarch64;
pub use self::aarch64::*;

#[cfg(target_arch = "x86_64")]
pub mod x86_64;
#[cfg(target_os = "none")]
pub use self::aarch64::kernel::boot_processor_init;
pub use self::aarch64::kernel::core_local;
pub use self::aarch64::kernel::interrupts;
pub use self::aarch64::kernel::interrupts::wakeup_core;
#[cfg(feature = "pci")]
pub use self::aarch64::kernel::pci;
pub use self::aarch64::kernel::processor;
pub use self::aarch64::kernel::processor::set_oneshot_timer;
pub use self::aarch64::kernel::scheduler;
pub use self::aarch64::kernel::switch;
pub use self::aarch64::kernel::systemtime::get_boot_time;
pub use self::aarch64::kernel::{
application_processor_init,
boot_application_processors,
get_processor_count,
message_output_init,
output_message_buf,
};
} else if #[cfg(target_arch = "x86_64")] {
pub mod x86_64;
pub use self::x86_64::*;

// Export our platform-specific modules.
#[cfg(all(target_arch = "aarch64", target_os = "none"))]
pub use crate::arch::aarch64::kernel::boot_processor_init;
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::kernel::core_local;
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::kernel::interrupts;
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::kernel::interrupts::wakeup_core;
#[cfg(all(target_arch = "aarch64", feature = "pci"))]
pub use crate::arch::aarch64::kernel::pci;
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::kernel::processor;
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::kernel::processor::set_oneshot_timer;
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::kernel::scheduler;
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::kernel::switch;
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::kernel::systemtime::get_boot_time;
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::kernel::{
application_processor_init, boot_application_processors, get_processor_count,
message_output_init, output_message_buf,
};
#[cfg(target_arch = "aarch64")]
pub use crate::arch::aarch64::*;
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::kernel::apic::{set_oneshot_timer, wakeup_core};
#[cfg(all(target_arch = "x86_64", target_os = "none", feature = "smp"))]
pub use crate::arch::x86_64::kernel::application_processor_init;
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::kernel::core_local;
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::kernel::gdt::set_current_kernel_stack;
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::kernel::interrupts;
#[cfg(all(target_arch = "x86_64", feature = "pci"))]
pub use crate::arch::x86_64::kernel::pci;
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::kernel::processor;
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::kernel::scheduler;
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::kernel::switch;
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::kernel::systemtime::get_boot_time;
#[cfg(all(target_arch = "x86_64", target_os = "none"))]
pub use crate::arch::x86_64::kernel::{boot_application_processors, boot_processor_init};
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::kernel::{
get_processor_count, message_output_init, output_message_buf,
};
#[cfg(target_arch = "x86_64")]
pub use crate::arch::x86_64::*;
pub use self::x86_64::kernel::apic::{
set_oneshot_timer,
wakeup_core,
};
#[cfg(all(target_os = "none", feature = "smp"))]
pub use self::x86_64::kernel::application_processor_init;
pub use self::x86_64::kernel::core_local;
pub use self::x86_64::kernel::gdt::set_current_kernel_stack;
pub use self::x86_64::kernel::interrupts;
#[cfg(feature = "pci")]
pub use self::x86_64::kernel::pci;
pub use self::x86_64::kernel::processor;
pub use self::x86_64::kernel::scheduler;
pub use self::x86_64::kernel::switch;
pub use self::x86_64::kernel::systemtime::get_boot_time;
#[cfg(target_os = "none")]
pub use self::x86_64::kernel::{
boot_application_processors,
boot_processor_init,
};
pub use self::x86_64::kernel::{
get_processor_count,
message_output_init,
output_message_buf,
};
}
}

0 comments on commit e59db8d

Please sign in to comment.