os/util/address.rs
1//! 地址相关工具函数
2
3/// 这是一个安全且常见的 align_down 实现
4/// T 必须是整数类型
5pub fn align_down(addr: usize, align: usize) -> usize {
6 // 对齐值必须是 2 的幂,否则行为可能不正确
7 debug_assert!(align.is_power_of_two());
8
9 // 计算当前地址的偏移量 (misalignment)
10 let misalign = addr & (align - 1);
11
12 // 返回向下对齐后的地址
13 addr - misalign
14}