| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #![no_std]
- #![feature(allocator_api)]
- #![feature(doc_notable_trait)]
- #![feature(impl_trait_in_assoc_type)]
- pub(crate) mod arch;
- pub mod bootstrap;
- pub mod context;
- pub mod mm;
- pub mod trap;
- pub mod fence {
- pub use crate::arch::fence::{memory_barrier, read_memory_barrier, write_memory_barrier};
- }
- pub mod fpu {
- pub use crate::arch::fpu::FpuState;
- }
- pub mod processor {
- pub use crate::arch::cpu::{halt, UserTLS, CPU, CPU_COUNT};
- }
- /// Re-export the arch module for use in other crates
- ///
- /// Use this to access architecture-specific functionality in cfg wrapped blocks.
- ///
- /// # Example
- /// ``` no_run
- /// #[cfg(target_arch = "x86_64")]
- /// {
- /// use eonix_hal::arch_exported::io::Port8;
- ///
- /// // We know that there will be a `Port8` type available for x86_64.
- /// let port = Port8::new(0x3f8);
- /// port.write(0x01);
- /// }
- /// ```
- pub mod arch_exported {
- pub use crate::arch::*;
- }
- pub use eonix_hal_macros::{ap_main, default_trap_handler, main};
- pub use eonix_hal_traits as traits;
|