PAGE_MASK
bus_size_t segment_size = PAGESIZE - (phys_addr & PAGE_MASK);
#define trunc_page(x) ((x) & ~PAGE_MASK)
off = (gva & PAGE_MASK);
gva &= ~PAGE_MASK;
if ((gva & PAGE_MASK) + size > PAGE_SIZE) {
remain = ((gva & PAGE_MASK) + size - PAGE_SIZE);
if ((gva & PAGE_MASK) + size > PAGE_SIZE) {
remain = ((gva & PAGE_MASK) + size - PAGE_SIZE);
#define PAGE_OFFSET(x) ((x) & (PAGE_MASK))
#define PAGE_BASE(x) ((x) & ~(PAGE_MASK))
#define TO_PAGE_SIZE(x) ((x + (PAGE_MASK)) & ~(PAGE_MASK))