Lines Matching defs:pvo

450 moea64_pvo_to_pte_native(mmu_t mmu, const struct pvo_entry *pvo)
457 if (!PVO_PTEGIDX_ISSET(pvo))
463 vsid = PVO_VSID(pvo);
464 ptegidx = va_to_pteg(vsid, PVO_VADDR(pvo),
465 pvo->pvo_vaddr & PVO_LARGE);
472 if (pvo->pvo_pte.lpte.pte_hi & LPTE_HID)
475 pteidx = (ptegidx << 3) | PVO_PTEGIDX_GET(pvo);
477 if ((pvo->pvo_pte.lpte.pte_hi & LPTE_VALID) &&
478 !PVO_PTEGIDX_ISSET(pvo)) {
479 panic("moea64_pvo_to_pte: pvo %p has valid pte in pvo but no "
480 "valid pte index", pvo);
483 if ((pvo->pvo_pte.lpte.pte_hi & LPTE_VALID) == 0 &&
484 PVO_PTEGIDX_ISSET(pvo)) {
485 panic("moea64_pvo_to_pte: pvo %p has valid pte index in pvo "
486 "pvo but no valid pte", pvo);
490 if ((pt->pte_hi ^ (pvo->pvo_pte.lpte.pte_hi & ~LPTE_VALID)) ==
492 if ((pvo->pvo_pte.lpte.pte_hi & LPTE_VALID) == 0) {
493 panic("moea64_pvo_to_pte: pvo %p has valid pte in "
494 "moea64_pteg_table %p but invalid in pvo", pvo, pt);
497 if (((pt->pte_lo ^ pvo->pvo_pte.lpte.pte_lo) &
499 panic("moea64_pvo_to_pte: pvo %p pte does not match "
501 pvo, pt,
502 (uint32_t)(pt->pte_lo ^ pvo->pvo_pte.lpte.pte_lo));
508 if (pvo->pvo_pte.lpte.pte_hi & LPTE_VALID) {
509 panic("moea64_pvo_to_pte: pvo %p has invalid pte %p in "
510 "moea64_pteg_table but valid in pvo", pvo, pt);
545 struct pvo_entry *pvo;
604 LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) {
605 if (pvo->pvo_pte.lpte.pte_hi == pt->pte_hi) {
606 KASSERT(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID,
609 &pvo->pvo_pte.lpte, pvo->pvo_vpn);
610 PVO_PTEGIDX_CLR(pvo);
616 KASSERT(pvo->pvo_pte.lpte.pte_hi == pt->pte_hi,