Lines Matching refs:ptp
105 uint64_t *ptp; /* first level page table page */
377 pt_paddr = vtophys(dom->ptp);
445 uint64_t spsize, *ptp;
485 ptp = dom->ptp;
502 if (ptp[ptpindex] == 0) {
504 ptp[ptpindex] = vtophys(nlp)| VTD_PTE_RD | VTD_PTE_WR;
507 ptp = (uint64_t *)PHYS_TO_DMAP(ptp[ptpindex] & VTD_PTE_ADDR_M);
517 ptp[ptpindex] = 0;
519 ptp[ptpindex] = hpa | VTD_PTE_RD | VTD_PTE_WR;
522 ptp[ptpindex] |= VTD_PTE_SUPERPAGE;
616 dom->ptp = malloc(PAGE_SIZE, M_VTD, M_ZERO | M_WAITOK);
617 if ((uintptr_t)dom->ptp & PAGE_MASK)
618 panic("vtd_create_domain: ptp (%p) not page aligned", dom->ptp);
644 vtd_free_ptp(uint64_t *ptp, int level)
651 if ((ptp[i] & (VTD_PTE_RD | VTD_PTE_WR)) == 0)
653 if ((ptp[i] & VTD_PTE_SUPERPAGE) != 0)
655 nlp = (uint64_t *)PHYS_TO_DMAP(ptp[i] & VTD_PTE_ADDR_M);
660 bzero(ptp, PAGE_SIZE);
661 free(ptp, M_VTD);
672 vtd_free_ptp(dom->ptp, dom->pt_levels);