//! main library for the AbleOS kernel. //! exposing all the kernel functionality to the rest of the kernel. //! //! #![no_std] #![feature( abi_x86_interrupt, alloc_error_handler, asm_sym, // Needed for RISC-V naked_functions, prelude_import, )] #[macro_use] pub extern crate log; pub extern crate alloc; pub extern crate externc_libm as libm; /// Contains architecture specific code for aarch64. #[cfg(target_arch = "aarch64")] #[path = "arch/aarch64/mod.rs"] pub mod arch; /// Contains architecture specific code for riscv64. #[cfg(target_arch = "riscv64")] #[path = "arch/riscv/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; #[cfg(target_arch = "x86_64")] pub mod port_io; #[macro_use] pub mod print; #[macro_use] pub mod serial_print; pub mod boot_conf; pub mod devices; pub mod driver_traits; pub mod experiments; pub mod filesystem; pub mod graphics; pub mod kernel_state; pub mod keyboard; pub mod kmain; pub mod logger; pub mod prelude; pub mod relib; pub mod rhai_shell; pub mod scheduler; pub mod scratchpad; pub mod stdio; pub mod time; pub mod utils; pub mod virtio; pub mod wasm; pub mod wasm_jumploader; pub mod allocator; // pub use allocator as aalloc; pub mod channels; pub mod handle; pub mod ipc; pub mod panic; mod unicode_utils; pub mod vga_e; #[prelude_import] pub use prelude::rust_2021::*; pub use driver_traits::*; pub use experiments::*; pub use graphics::*; pub use kernel; pub use kernel::messaging; // pub use kernel::panic; pub use kernel_state::*; pub use keyboard::*; pub use logger::*; pub use relib::*; pub use scratchpad::*; pub use utils::*; pub use virtio::*; pub use wasm::*;