1#![cfg_attr(all(not(test), not(doc)), no_std)]
6#![feature(doc_cfg)]
7#![feature(doc_auto_cfg)]
8#![allow(clippy::missing_safety_doc)]
9
10#[macro_use]
11extern crate axlog;
12extern crate axruntime;
13
14#[cfg(feature = "alloc")]
15extern crate alloc;
16
17#[macro_use]
18mod utils;
19
20mod imp;
21pub use utils::char_ptr_to_str;
22
23pub mod config {
25 pub use axconfig::*;
26}
27
28#[rustfmt::skip]
30#[path = "./ctypes_gen.rs"]
31#[allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals, clippy::upper_case_acronyms, missing_docs)]
32pub mod ctypes;
33
34pub use imp::io::{sys_read, sys_write, sys_writev};
35#[cfg(feature = "fs")]
36pub use imp::path_link::{AT_FDCWD, FilePath, HARDLINK_MANAGER, handle_file_path};
37pub use imp::resources::{sys_getrlimit, sys_setrlimit};
38pub use imp::sys::sys_sysconf;
39pub use imp::task::{sys_exit, sys_getpid, sys_sched_yield};
40pub use imp::time::{sys_clock_gettime, sys_get_time_of_day, sys_nanosleep};
41
42#[cfg(feature = "fd")]
43pub use imp::fd_ops::{
44 FD_TABLE, add_file_like, get_file_like, sys_close, sys_dup, sys_dup2, sys_fcntl,
45};
46#[cfg(feature = "fs")]
47pub use imp::fs::{
48 Directory, File, sys_fstat, sys_getcwd, sys_lseek, sys_lstat, sys_open, sys_openat, sys_rename,
49 sys_stat,
50};
51#[cfg(feature = "select")]
52pub use imp::io_mpx::sys_select;
53#[cfg(feature = "epoll")]
54pub use imp::io_mpx::{sys_epoll_create, sys_epoll_ctl, sys_epoll_wait};
55#[cfg(feature = "net")]
56pub use imp::net::{
57 sys_accept, sys_bind, sys_connect, sys_freeaddrinfo, sys_getaddrinfo, sys_getpeername,
58 sys_getsockname, sys_listen, sys_recv, sys_recvfrom, sys_send, sys_sendto, sys_shutdown,
59 sys_socket,
60};
61#[cfg(feature = "pipe")]
62pub use imp::pipe::sys_pipe;
63#[cfg(feature = "multitask")]
64pub use imp::pthread::mutex::{
65 sys_pthread_mutex_init, sys_pthread_mutex_lock, sys_pthread_mutex_unlock,
66};
67#[cfg(feature = "multitask")]
68pub use imp::pthread::{sys_pthread_create, sys_pthread_exit, sys_pthread_join, sys_pthread_self};