//! main library for the AbleOS kernel. //! exposing all the kernel functionality to the rest of the kernel. //! //! #![no_std] #![feature( abi_x86_interrupt, asm_sym, alloc_error_handler, core_intrinsics, exclusive_range_pattern, lang_items, naked_functions, slice_pattern )] /// Contains architecture specific code for aarch64. #[cfg(target_arch = "aarch64")] #[path = "arch/aarch64/mod.rs"] pub mod arch; /// Contains architecture specific code for x86_64. #[cfg(target_arch = "x86_64")] #[path = "arch/x86_64/mod.rs"] pub mod arch; /// Contains architecture specific code for riscv64. #[cfg(target_arch = "riscv64")] #[path = "arch/riscv/mod.rs"] pub mod arch; #[macro_use] pub mod print; #[macro_use] pub extern crate log; ///////////// // Modules // ///////////// pub mod allocator; pub mod boot_conf; pub mod driver_traits; pub mod experiments; pub mod graphics; pub mod kernel_state; pub mod keyboard; pub mod kmain; pub mod logger; pub mod panic; pub mod proto_filetable; pub mod relib; pub mod scheduler; mod unicode_utils; pub mod utils; pub mod vga_e; pub mod wasm; pub extern crate alloc; pub extern crate externc_libm as libm; ////////////////// // Re-exports /// //////////////// pub use allocator::*; pub use boot_conf::*; pub use driver_traits::*; pub use experiments::*; pub use graphics::*; pub use kernel_state::*; pub use keyboard::*; pub use logger::*; pub use panic::*; pub use proto_filetable::*; pub use relib::*; pub use scheduler::*; pub use utils::*; pub use vga_e::*; pub use wasm::*; ////////////////// pub mod virtio; pub use virtio::*; pub mod alias_table; pub use alias_table::*; pub mod tests; pub use tests::*; pub mod syscalls; pub use syscalls::*; pub mod scratchpad; pub use scratchpad::*;