IOMMU_PAGE_SIZE
#define IOMMU_PAGE_MASK (IOMMU_PAGE_SIZE - 1)
#define NL0PG (IOMMU_PAGE_SIZE/(sizeof (pd_entry_t)))
#define NL1PG (IOMMU_PAGE_SIZE/(sizeof (pd_entry_t)))
#define NL2PG (IOMMU_PAGE_SIZE/(sizeof (pd_entry_t)))
#define NL3PG (IOMMU_PAGE_SIZE/(sizeof (pt_entry_t)))
KASSERT(offset < IOMMU_PAGE_SIZE, ("offset %d", offset));
beg = MAX(beg + IOMMU_PAGE_SIZE, lbound);
if (end < IOMMU_PAGE_SIZE + 1)
end = MIN(end - IOMMU_PAGE_SIZE - 1, ubound);
entry->end = start + roundup2(size + offset, IOMMU_PAGE_SIZE);
min_free = 3 * IOMMU_PAGE_SIZE;
min_free = 2 * IOMMU_PAGE_SIZE +
roundup2(a->size + a->offset, IOMMU_PAGE_SIZE);
isize = IOMMU_PAGE_SIZE; /* XXXKIB handle superpages */
atop(seg_sz), 0, ~0ul, IOMMU_PAGE_SIZE, 0,
atop(seg_sz), 0, ~0ul, IOMMU_PAGE_SIZE, 0);
for (pi = 0; size > 0; base += IOMMU_PAGE_SIZE, size -= IOMMU_PAGE_SIZE,
KASSERT(size >= IOMMU_PAGE_SIZE,
(uintmax_t)base, (uintmax_t)size, (uintmax_t)IOMMU_PAGE_SIZE));
pg_sz = IOMMU_PAGE_SIZE;
entry->end += IOMMU_PAGE_SIZE * 0x20;
#define DMAR_CTX_CNT (IOMMU_PAGE_SIZE / sizeof(dmar_root_entry_t))
(iommu_gaddr_t)IOMMU_PAGE_SIZE,
(iommu_gaddr_t)IOMMU_PAGE_SIZE << IOMMU_NPTEPGSHIFT,
(iommu_gaddr_t)IOMMU_PAGE_SIZE << (2 * IOMMU_NPTEPGSHIFT),
(iommu_gaddr_t)IOMMU_PAGE_SIZE << (3 * IOMMU_NPTEPGSHIFT),
(iommu_gaddr_t)IOMMU_PAGE_SIZE << (4 * IOMMU_NPTEPGSHIFT),
(iommu_gaddr_t)IOMMU_PAGE_SIZE << (5 * IOMMU_NPTEPGSHIFT),
(iommu_gaddr_t)IOMMU_PAGE_SIZE << (6 * IOMMU_NPTEPGSHIFT),
#define IOMMU_PAGE_MASK (IOMMU_PAGE_SIZE - 1)
#define IOMMU_NPTEPG (IOMMU_PAGE_SIZE / sizeof(iommu_pte_t))