//! The ableOS kernel. #![deny(missing_docs)] #![no_std] #![feature(prelude_import)] #![feature(arbitrary_enum_discriminant)] pub mod device_interface; pub mod messaging; pub mod panic; pub mod proccess; pub mod syscalls; pub mod time; use core::sync::atomic::{AtomicU64, Ordering::Relaxed}; use versioning::Version; /// The number of ticks since the first CPU was started pub static TICK: AtomicU64 = AtomicU64::new(0); /// Kernel's version pub const KERNEL_VERSION: Version = Version { major: 0, minor: 1, patch: 2, }; /// called by arch specific timers to tick up all kernel related functions pub fn tick() { let mut data = TICK.load(Relaxed); data = data.wrapping_add(1); TICK.store(data, Relaxed) }