const_sizes
友好可读的 2 的幂次常量大小(power-of-two size constants),对标 Linux 内核 <linux/sizes.h> 的 SZ_* 宏。
#![no_std]、零依赖、纯 pub const usize,可在裸机 / 嵌入式 / 内核场景直接使用。
功能
写裸机或内核代码时,到处充斥 0x1000、0x10_0000、16 * 1024 这类魔数:
const KERNEL_HEAP: usize = 16 * 1024 * 1024; // 多少?数 0
const PAGE_SIZE: usize = 0x1000; // 4K?还是别的?
换成 const_sizes 之后语义自解释、计算在编译期完成、不会写错位数:
use ;
const KERNEL_HEAP: usize = SZ_16M;
const PAGE_SIZE: usize = SZ_4K;
用法
use ;
// 缓存行
;
// 页大小
const PAGE_SIZE: usize = SZ_4K;
// 大页
const HUGE_PAGE: usize = SZ_2M;
// 用户空间上限
const USER_SPACE_END: usize = SZ_1G;