mango_core/lib.rs
1#![no_std]
2#![warn(missing_docs)]
3#![deny(warnings)]
4
5//! mango_core: mango core
6//!
7//! This crate contains core definitions for the mango operating system.
8//!
9
10use lazy_static::lazy_static;
11
12/// Common utilities
13// pub mod common;
14mod logging;
15/// TODO should not be public
16pub mod print;
17/// Support for stopping qemu
18#[cfg(feature = "qemu")]
19pub mod qemu;
20/// Support for printing to standard output. Whether on a screen or a serial device. This is used by the print macros.
21pub mod stdout;
22/// Support for getting time
23pub mod time;
24
25lazy_static! {
26 /// STDOUT is a printer output that is used by the print/println macros to display text on the standard output.
27 pub static ref STDOUT: spin::Mutex<stdout::StaticPrinter> =
28 spin::Mutex::new(stdout::StaticPrinter::default());
29}
30
31lazy_static! {
32 /// TIME allows to access the uptime of the kernel.
33 pub static ref TIME: spin::Mutex<time::StaticTimeManager> =
34 spin::Mutex::new(time::StaticTimeManager::default());
35}