Skip to main content

frame_alloc/
lib.rs

1#![no_std]
2
3// Modules:
4
5#[cfg(any(audit, test))]
6extern crate alloc;
7
8mod allocator;
9mod page_size;
10mod util {
11    pub(crate) mod cache;
12    pub(crate) mod lifo;
13    pub(crate) mod lock;
14}
15mod strategies {
16    pub(crate) mod cpu_id;
17    pub(crate) mod interrupt;
18    pub(crate) mod provenance;
19}
20
21mod implementations {
22    pub(crate) mod summary_buddy;
23    pub(crate) mod wrappers {
24        pub(crate) mod depot;
25        pub(crate) mod regioned;
26    }
27}
28
29// Public API:
30
31pub use allocator::AllocError;
32#[cfg(any(feature = "stats", test))]
33pub use allocator::AllocatorStats;
34pub use allocator::InitError;
35pub use allocator::PhysRange;
36pub use allocator::PhysicalAllocator;
37pub use allocator::RegionInit;
38pub use implementations::summary_buddy::{DefaultGates, GateConfig, SummaryBuddyAllocator};
39pub use implementations::wrappers::depot::DepotAllocator;
40pub use implementations::wrappers::regioned::RegionedAllocator;
41pub use page_size::PageSize;
42pub use strategies::cpu_id::{CpuId, NoCpuId};
43pub use strategies::interrupt::{InterruptControl, NoInterruptControl};
44pub use strategies::provenance::Provenance;
45
46// Tests:
47
48#[cfg(test)]
49mod tests {
50    mod common;
51    mod composition;
52    mod depot;
53    mod lifo;
54    mod lock;
55    mod page_size;
56    mod regioned;
57    mod summary_buddy;
58}