//! 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, prelude_import )] /// 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; pub mod devices; pub mod port_io; pub mod rhai_shell; pub mod wasm_jumploader; #[macro_use] pub extern crate log; ///////////// // Modules // ///////////// pub mod allocator; 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 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 driver_traits::*; pub use experiments::*; pub use graphics::*; pub use kernel_state::*; pub use keyboard::*; pub use logger::*; pub use proto_filetable::*; pub use relib::*; // pub use scheduler::*; pub use utils::*; // pub use vga_e::*; pub use wasm::*; pub mod boot_conf; pub mod virtio; pub use virtio::*; // pub mod alias_table; // pub use alias_table::*; pub mod tests; pub use tests::*; pub mod scratchpad; pub use scratchpad::*; pub mod filesystem; /////////////// /// Kernel /// ///////////// pub use kernel; pub use kernel::messaging; pub use kernel::panic; pub mod prelude; #[prelude_import] pub use prelude::rust_2021::*;