Skip to main content

ax_cpu/
lib.rs

1#![no_std]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![deny(missing_docs)]
4#![doc = include_str!("../README.md")]
5
6#[macro_use]
7extern crate log;
8
9#[macro_use]
10extern crate ax_memory_addr;
11
12pub use ax_memory_addr::{MemoryAddr, PhysAddr, VirtAddr};
13
14#[macro_use]
15pub mod trap;
16
17pub(crate) use trap::TrapOrigin;
18
19#[cfg(feature = "context")]
20mod task_local;
21#[cfg(feature = "context")]
22pub(crate) use task_local::TaskLocalState;
23
24pub mod capability;
25
26pub mod paging;
27
28#[cfg(feature = "exception-table")]
29mod exception_table;
30#[cfg(feature = "uspace")]
31mod user_access;
32#[cfg(feature = "uspace")]
33mod uspace_common;
34#[cfg(feature = "uspace")]
35pub(crate) use user_access::UserAccessType;
36
37mod arch;
38pub mod boot;
39pub mod cache;
40pub mod context;
41pub mod interrupt;
42pub mod mmu;
43pub mod registers;
44pub mod timer;
45
46#[cfg(all(target_arch = "aarch64", feature = "pmu"))]
47pub mod pmu;
48pub(crate) use arch::current::asm;
49#[cfg(feature = "uspace")]
50pub(crate) use arch::current::uspace;
51
52#[cfg(feature = "uspace")]
53pub mod user;
54
55pub mod barrier;
56
57#[cfg(feature = "context")]
58pub(crate) use context::KernelTlsBase;
59
60#[cfg(feature = "virtualization")]
61pub mod virtualization;