ableos/ableos/src/lib.rs

99 lines
1.9 KiB
Rust

//! 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
)]
#![feature(abi_efiapi)]
/// 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(all(target_arch = "x86_64", not(target_os = "uefi")))]
#[path = "arch/x86_64/mod.rs"]
pub mod arch;
#[cfg(all(target_arch = "x86_64", target_os = "uefi"))]
#[path = "arch/uefi_86/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 graphics_api;
#[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::*;