Home | History | Annotate | Download | only in pmap

Lines Matching defs:ppg

446 	pmap_ptpage_t * const ppg = pmap_ptpage(pmap, va);
447 if (ppg == NULL)
452 return ppg->ppg_ptes + pte_idx;
463 pmap_ptpage_t *ppg = NULL;
469 ppg = pmap_pgcache_alloc(&pmap_segtab_info.ppg_flist);
471 if (ppg == NULL) {
480 ppg = (pmap_ptpage_t *)PMAP_MAP_PTEPAGE(pa);
482 bool ok __diagused = pmap_extract(pmap_kernel(), (vaddr_t)ppg, &pa);
487 pmap_page_attach(pmap, (vaddr_t)ppg, pg, &pmap->pm_ppg_list, 0);
501 ppg = (pmap_ptpage_t *)kva;
504 UVMHIST_LOG(pmapxtabhist, "... ppg %#jx", (uintptr_t)ppg, 0, 0, 0);
506 return ppg;
510 pmap_ptpage_free(pmap_t pmap, pmap_ptpage_t *ppg, const char *caller)
514 (uintptr_t)ppg, 0, 0);
516 const vaddr_t kva = (vaddr_t)ppg;
521 panic("%s: pte entry at %p not page aligned", caller, ppg);
526 if (ppg->ppg_ptes[j] != 0) {
529 (uintptr_t)&ppg->ppg_ptes[j],
530 (uintptr_t)ppg->ppg_ptes[j], 0, 0);
532 if (ppg->ppg_ptes[i] != 0)
535 i, ppg->ppg_ptes[i], 0, 0);
538 __func__, &ppg->ppg_ptes[j],
539 ppg->ppg_ptes[j]);
543 //pmap_md_vca_clean(pg, (vaddr_t)ppg, NBPG);
547 ppg);
788 pmap_ptpage_t *ppg = pmap_pde_to_ptpage(ptb->pde_pde[i]);
792 if (ppg == NULL)
800 pmap_ptpage_free(pmap, ppg, __func__);
846 pmap_ptpage_t *ppg = stb->seg_ppg[i];
847 if (ppg == NULL)
854 (*callback)(pmap, va, va + vinc, ppg->ppg_ptes, flags);
856 pmap_ptpage_free(pmap, ppg, __func__);
1144 ppg;
1149 ppg = pmap_pde_to_ptpage(*pde_p);
1153 ppg = *ppg_p;
1156 ppg = *ppg_p;
1159 if (__predict_false(ppg == NULL)) {
1160 ppg = pmap_ptpage_alloc(pmap, flags, &pa);
1161 if (__predict_false(ppg == NULL))
1170 pmap_ptpage_free(pmap, ppg, __func__);
1171 ppg = pmap_pde_to_ptpage(opde);
1175 pmap_ptpage_t *oppg = atomic_cas_ptr(ppg_p, NULL, ppg);
1181 pmap_ptpage_free(pmap, ppg, __func__);
1182 ppg = oppg;
1189 *ppg_p = ppg;
1196 return ppg->ppg_ptes + pte_idx;