//! main library for the AbleOS kernel. //! exposing all the kernel functionality to the rest of the kernel. //! //! #![no_std] #![feature( abi_x86_interrupt, // asm, asm_sym, alloc_error_handler, core_intrinsics, // global_asm, lang_items, llvm_asm, naked_functions )] #![feature(exclusive_range_pattern)] #![feature(slice_pattern)] #[cfg(target_arch = "aarch64")] #[path = "arch/aarch64/mod.rs"] pub mod arch; #[cfg(target_arch = "x86_64")] #[path = "arch/x86_64/mod.rs"] pub mod arch; #[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::*;