userspace/memory/
page.rs

1use core::ops::Not;
2
3pub use crate::target::arch::page::SIZE;
4
5pub const ALIGNMENT: usize = SIZE - 1;
6pub const MASK: usize = !ALIGNMENT;
7
8pub const DYNAMIC_OFFSET: usize = 0x400000;
9
10pub fn round_address_to_lower_page_boundary(address: usize) -> usize {
11    address & MASK
12}
13
14pub fn align_to_lower_page(address: usize) -> usize {
15    (address + ALIGNMENT) & ALIGNMENT.not()
16}
17
18pub fn truncate_to_page(address: usize) -> usize {
19    address & ALIGNMENT.not()
20}