1mod mem;
2mod task;
3
4cfg_fs! {
5 mod fs;
6 pub use fs::*;
7}
8
9cfg_net! {
10 mod net;
11 pub use net::*;
12}
13
14cfg_display! {
15 mod display;
16 pub use display::*;
17}
18
19mod stdio {
20 use core::fmt;
21
22 pub fn ax_console_read_bytes(buf: &mut [u8]) -> crate::AxResult<usize> {
23 let len = axhal::console::read_bytes(buf);
24 for c in &mut buf[..len] {
25 if *c == b'\r' {
26 *c = b'\n';
27 }
28 }
29 Ok(len)
30 }
31
32 pub fn ax_console_write_bytes(buf: &[u8]) -> crate::AxResult<usize> {
33 axhal::console::write_bytes(buf);
34 Ok(buf.len())
35 }
36
37 pub fn ax_console_write_fmt(args: fmt::Arguments) -> fmt::Result {
38 axlog::print_fmt(args)
39 }
40}
41
42mod time {
43 pub use axhal::time::{
44 TimeValue as AxTimeValue, monotonic_time as ax_monotonic_time, wall_time as ax_wall_time,
45 };
46}
47
48pub use self::mem::*;
49pub use self::stdio::*;
50pub use self::task::*;
51pub use self::time::*;
52
53pub use axhal::misc::terminate as ax_terminate;
54pub use axio::PollState as AxPollState;