page_align

Function page_align 

Source
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);