1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Linux 风格 memblock 早期引导内存分配器
//!
//! 提供双区域类型(memory + reserved)、排序区域数组、自动合并、
//! 标志过滤、方向控制分配等功能,所有存储基于固定大小静态数组。
//!
//! # 示例
//!
//! ```
//! use moa_memblock::Memblock;
//!
//! let mut mb = Memblock::new();
//!
//! // 添加可用内存
//! mb.add(0x4000_0000, 0x4000_0000).unwrap(); // 1GB @ 1GB
//!
//! // 保留内核镜像区域
//! mb.reserve(0x4000_0000, 0x100_0000).unwrap(); // 16MB
//!
//! // 分配 4KB,4KB 对齐
//! let addr = mb.alloc(0x1000, 0x1000).unwrap();
//! assert!(addr >= 0x4100_0000); // 在保留区域之后
//!
//! // 迭代 free 区域
//! for (base, size) in mb.free_regions() {
//! assert!(size > 0);
//! }
//! ```
pub use ;