pub const fn page_align(addr: usize) -> Option<usize>Expand description
Rounds up to the next multiple of PAGE_SIZE.
Returns None on integer overflow.
ยงExamples
use kernel::page::{
page_align,
PAGE_SIZE,
};
// Requested address is already aligned.
assert_eq!(page_align(0x0), Some(0x0));
assert_eq!(page_align(PAGE_SIZE), Some(PAGE_SIZE));
// Requested address needs alignment up.
assert_eq!(page_align(0x1), Some(PAGE_SIZE));
assert_eq!(page_align(PAGE_SIZE + 1), Some(2 * PAGE_SIZE));
// Requested address causes overflow (returns `None`).
let overflow_addr = usize::MAX - (PAGE_SIZE / 2);
assert_eq!(page_align(overflow_addr), None);