1#![cfg_attr(
33 not(feature = "document-features"),
34 doc = "Activate the `document-features` Cargo feature to see feature docs here."
35)]
36#![cfg_attr(feature = "document-features", doc = document_features::document_features!())]
37#![allow(clippy::missing_safety_doc)]
42#![cfg_attr(
43 any(target_arch = "aarch64", target_arch = "riscv64"),
44 allow(incomplete_features)
45)]
46#![cfg_attr(target_arch = "x86_64", feature(abi_x86_interrupt))]
47#![feature(allocator_api)]
48#![cfg_attr(docsrs, feature(doc_cfg))]
49#![cfg_attr(
50 all(
51 not(any(feature = "common-os", feature = "nostd")),
52 not(target_arch = "riscv64"),
53 ),
54 feature(linkage)
55)]
56#![feature(linked_list_cursors)]
57#![feature(never_type)]
58#![cfg_attr(
59 any(target_arch = "aarch64", target_arch = "riscv64"),
60 feature(specialization)
61)]
62#![cfg_attr(
63 all(
64 not(any(feature = "common-os", feature = "nostd")),
65 not(target_arch = "riscv64"),
66 ),
67 feature(thread_local)
68)]
69#![cfg_attr(target_os = "none", no_std)]
70#![cfg_attr(target_os = "none", feature(custom_test_frameworks))]
71#![cfg_attr(all(target_os = "none", test), test_runner(crate::rt::test_runner))]
72#![cfg_attr(
73 all(target_os = "none", test),
74 reexport_test_harness_main = "test_main"
75)]
76#![cfg_attr(all(target_os = "none", test), no_main)]
77#![feature(strict_provenance_lints)]
79#![warn(implicit_provenance_casts)]
80
81#[macro_use]
83extern crate alloc;
84#[macro_use]
85extern crate bitflags;
86#[macro_use]
87extern crate log;
88#[cfg(not(target_os = "none"))]
89#[macro_use]
90extern crate std;
91
92#[macro_use]
93mod macros;
94
95#[macro_use]
96mod logging;
97
98pub mod arch;
99#[cfg(all(feature = "common-os", target_arch = "x86_64"))]
100pub mod common_os;
101pub mod config;
102pub mod console;
103mod drivers;
104mod entropy;
105mod env;
106pub mod errno;
107mod executor;
108pub mod fd;
109pub mod fs;
110mod init_buf;
111mod init_cell;
112pub mod io;
113pub mod mm;
114mod page_range_ext;
115#[cfg(target_os = "none")]
116pub mod rt;
117pub mod scheduler;
118#[cfg(feature = "shell")]
119mod shell;
120mod synch;
121pub mod syscalls;
122pub mod time;
123#[cfg(feature = "uhyve")]
124mod uhyve;