Lines Matching refs:lvl
112 dmar_idmap_nextlvl(struct idpgtbl *tbl, int lvl, vm_pindex_t idx, in dmar_idmap_nextlvl() argument
128 pg_sz = pglvl_page_size(tbl->pglvl, lvl); in dmar_idmap_nextlvl()
129 if (lvl != tbl->leaf) { in dmar_idmap_nextlvl()
131 dmar_idmap_nextlvl(tbl, lvl + 1, base + i, f); in dmar_idmap_nextlvl()
135 if (lvl == tbl->leaf) { in dmar_idmap_nextlvl()
328 dmar_pgtbl_map_pte(struct dmar_domain *domain, iommu_gaddr_t base, int lvl, in dmar_pgtbl_map_pte() argument
339 idx = pglvl_pgtbl_get_pindex(domain->pglvl, base, lvl); in dmar_pgtbl_map_pte()
349 KASSERT(lvl > 0, in dmar_pgtbl_map_pte()
371 ptep = dmar_pgtbl_map_pte(domain, base, lvl - 1, in dmar_pgtbl_map_pte()
391 pte += pglvl_pgtbl_pte_off(domain->pglvl, base, lvl); in dmar_pgtbl_map_pte()
404 int lvl; in dmar_map_buf_locked() local
415 for (lvl = 0, c = 0, superpage = false;; lvl++) { in dmar_map_buf_locked()
416 pg_sz = domain_page_size(domain, lvl); in dmar_map_buf_locked()
418 if (lvl == domain->pglvl - 1) in dmar_map_buf_locked()
424 if (!domain_is_sp_lvl(domain, lvl)) in dmar_map_buf_locked()
450 KASSERT(pg_sz > 0, ("pg_sz 0 lvl %d", lvl)); in dmar_map_buf_locked()
451 pte = dmar_pgtbl_map_pte(domain, base, lvl, flags, &idx, &sf); in dmar_map_buf_locked()
547 iommu_gaddr_t base, int lvl, int flags, iommu_pte_t *pte,
552 int lvl, int flags, struct iommu_map_entry *entry) in dmar_free_pgtbl_pde() argument
559 pde = dmar_pgtbl_map_pte(domain, base, lvl, flags, &idx, &sf); in dmar_free_pgtbl_pde()
560 dmar_unmap_clear_pte(domain, base, lvl, flags, pde, &sf, in dmar_free_pgtbl_pde()
565 dmar_unmap_clear_pte(struct dmar_domain *domain, iommu_gaddr_t base, int lvl, in dmar_unmap_clear_pte() argument
580 KASSERT(lvl != 0, in dmar_unmap_clear_pte()
582 domain, (uintmax_t)base, lvl)); in dmar_unmap_clear_pte()
585 domain, (uintmax_t)base, lvl)); in dmar_unmap_clear_pte()
587 dmar_free_pgtbl_pde(domain, base, lvl - 1, flags, entry); in dmar_unmap_clear_pte()
601 int lvl; in dmar_unmap_buf_locked() local
631 for (lvl = 0; lvl < domain->pglvl; lvl++) { in dmar_unmap_buf_locked()
632 if (lvl != domain->pglvl - 1 && in dmar_unmap_buf_locked()
633 !domain_is_sp_lvl(domain, lvl)) in dmar_unmap_buf_locked()
635 pg_sz = domain_page_size(domain, lvl); in dmar_unmap_buf_locked()
638 pte = dmar_pgtbl_map_pte(domain, base, lvl, flags, in dmar_unmap_buf_locked()
642 domain, (uintmax_t)base, lvl, flags)); in dmar_unmap_buf_locked()
644 lvl == domain->pglvl - 1) { in dmar_unmap_buf_locked()
645 dmar_unmap_clear_pte(domain, base, lvl, in dmar_unmap_buf_locked()