1
0
Fork 0
forked from koniifer/ableos
ableos-framebuffer/ableos/src/lib.rs

116 lines
2.1 KiB
Rust
Raw Normal View History

2022-08-05 06:22:23 -05:00
/*
* Copyright (c) 2022, Able <able@ablecorp.us>
*
* SPDX-License-Identifier: MPL-2.0
*/
//! main library for the AbleOS kernel.
//! exposing all the kernel functionality to the rest of the kernel.
//!
//!
2021-11-21 02:13:50 -06:00
2021-11-16 00:09:27 -06:00
#![no_std]
2022-06-15 17:19:36 -05:00
#![feature(
abi_x86_interrupt,
alloc_error_handler,
asm_sym, // Needed for RISC-V
naked_functions,
prelude_import,
)]
2022-08-06 06:48:40 -05:00
#![feature(arbitrary_enum_discriminant)]
2022-08-05 06:22:23 -05:00
#![feature(custom_test_frameworks)]
#![reexport_test_harness_main = "test_main"]
2022-08-06 06:48:40 -05:00
#![test_runner(crate::test_runner)]
2022-04-11 17:23:11 -05:00
#[macro_use]
pub extern crate log;
pub extern crate alloc;
pub extern crate externc_libm as libm;
2021-11-16 00:09:27 -06:00
2022-01-26 22:06:04 -06:00
/// Contains architecture specific code for aarch64.
2021-11-16 00:09:27 -06:00
#[cfg(target_arch = "aarch64")]
#[path = "arch/aarch64/mod.rs"]
2021-11-22 10:30:49 -06:00
pub mod arch;
2021-11-16 00:09:27 -06:00
2022-01-26 22:06:04 -06:00
/// Contains architecture specific code for riscv64.
#[cfg(target_arch = "riscv64")]
#[path = "arch/riscv/mod.rs"]
2021-11-22 10:30:49 -06:00
pub mod arch;
2022-04-11 17:23:11 -05:00
/// Contains architecture specific code for x86_64.
#[cfg(target_arch = "x86_64")]
#[path = "arch/x86_64/mod.rs"]
pub mod arch;
2022-01-16 14:55:58 -06:00
2022-03-11 14:18:07 -06:00
#[cfg(target_arch = "x86_64")]
pub mod port_io;
2022-03-11 17:13:41 -06:00
#[macro_use]
2022-04-11 17:23:11 -05:00
pub mod print;
2022-03-11 17:13:41 -06:00
2022-01-16 19:42:11 -06:00
#[macro_use]
2022-04-11 17:23:11 -05:00
pub mod serial_print;
2022-04-11 17:23:11 -05:00
pub mod boot_conf;
pub mod devices;
2021-11-22 10:30:49 -06:00
pub mod driver_traits;
pub mod experiments;
2022-04-11 17:23:11 -05:00
pub mod filesystem;
pub mod graphics;
pub mod kernel_state;
2021-11-16 00:09:27 -06:00
pub mod keyboard;
2021-11-22 10:30:49 -06:00
pub mod kmain;
2022-01-16 19:42:11 -06:00
pub mod logger;
2022-04-11 17:23:11 -05:00
pub mod prelude;
2022-07-31 01:54:01 -05:00
pub mod ps2_mouse;
2021-11-16 00:09:27 -06:00
pub mod relib;
2022-04-11 17:23:11 -05:00
pub mod rhai_shell;
2022-02-20 05:05:50 -06:00
pub mod scheduler;
2022-04-11 17:23:11 -05:00
pub mod scratchpad;
pub mod stdio;
pub mod time;
pub mod utils;
2022-04-11 17:23:11 -05:00
pub mod virtio;
2022-01-25 19:40:37 -06:00
pub mod wasm;
2022-04-11 17:23:11 -05:00
pub mod wasm_jumploader;
2022-06-22 13:59:24 -05:00
pub mod allocator;
// pub use allocator as aalloc;
2022-07-28 03:39:20 -05:00
pub mod handle;
2022-07-31 01:54:01 -05:00
pub mod hardware;
2022-07-28 10:57:28 -05:00
pub mod ipc;
2022-07-29 12:48:45 -05:00
pub mod panic;
2022-04-11 17:23:11 -05:00
mod unicode_utils;
2022-06-02 06:00:26 -05:00
pub mod vga_e;
2022-07-31 01:54:01 -05:00
pub mod vterm;
2022-08-05 06:22:23 -05:00
// pub mod vgai;
2022-01-07 10:31:47 -06:00
2022-04-11 17:23:27 -05:00
#[prelude_import]
pub use prelude::rust_2021::*;
pub use driver_traits::*;
pub use experiments::*;
pub use graphics::*;
2022-04-11 17:23:11 -05:00
pub use kernel;
pub use kernel::messaging;
2022-07-29 12:48:45 -05:00
// pub use kernel::panic;
pub use kernel_state::*;
pub use keyboard::*;
pub use logger::*;
pub use relib::*;
2022-04-11 17:23:11 -05:00
pub use scratchpad::*;
pub use utils::*;
pub use virtio::*;
2022-04-11 17:23:11 -05:00
pub use wasm::*;
2022-08-05 06:22:23 -05:00
#[cfg(test)]
pub mod tests;
#[cfg(test)]
pub use tests::test_kernel_main;
#[cfg(test)]
use crate::tests::test_runner;