Lines Matching refs:kpme

44 static int	sfmmu_kpme_lookup(struct kpme *, page_t *);
45 static void sfmmu_kpme_add(struct kpme *, page_t *);
46 static void sfmmu_kpme_sub(struct kpme *, page_t *);
80 hat_kpm_mapin(struct page *pp, struct kpme *kpme) in hat_kpm_mapin() argument
101 if (kpme != NULL) { in hat_kpm_mapin()
106 if ((sfmmu_kpme_lookup(kpme, pp)) == 0) in hat_kpm_mapin()
107 sfmmu_kpme_add(kpme, pp); in hat_kpm_mapin()
129 hat_kpm_mapout(struct page *pp, struct kpme *kpme, caddr_t vaddr) in hat_kpm_mapout() argument
148 if (kpme != NULL) { in hat_kpm_mapout()
149 ASSERT(pp == kpme->kpe_page); in hat_kpm_mapout()
150 pp = kpme->kpe_page; in hat_kpm_mapout()
153 if (sfmmu_kpme_lookup(kpme, pp) == 0) in hat_kpm_mapout()
158 sfmmu_kpme_sub(kpme, pp); in hat_kpm_mapout()
620 sfmmu_kpme_lookup(struct kpme *kpme, page_t *pp) in sfmmu_kpme_lookup() argument
622 struct kpme *p; in sfmmu_kpme_lookup()
625 if (p == kpme) in sfmmu_kpme_lookup()
636 sfmmu_kpme_add(struct kpme *kpme, page_t *pp) in sfmmu_kpme_add() argument
641 kpme->kpe_prev = NULL; in sfmmu_kpme_add()
642 kpme->kpe_next = pp->p_kpmelist; in sfmmu_kpme_add()
645 pp->p_kpmelist->kpe_prev = kpme; in sfmmu_kpme_add()
647 pp->p_kpmelist = kpme; in sfmmu_kpme_add()
648 kpme->kpe_page = pp; in sfmmu_kpme_add()
657 sfmmu_kpme_sub(struct kpme *kpme, page_t *pp) in sfmmu_kpme_sub() argument
661 if (kpme->kpe_prev) { in sfmmu_kpme_sub()
662 ASSERT(pp->p_kpmelist != kpme); in sfmmu_kpme_sub()
663 ASSERT(kpme->kpe_prev->kpe_page == pp); in sfmmu_kpme_sub()
664 kpme->kpe_prev->kpe_next = kpme->kpe_next; in sfmmu_kpme_sub()
666 ASSERT(pp->p_kpmelist == kpme); in sfmmu_kpme_sub()
667 pp->p_kpmelist = kpme->kpe_next; in sfmmu_kpme_sub()
670 if (kpme->kpe_next) { in sfmmu_kpme_sub()
671 ASSERT(kpme->kpe_next->kpe_page == pp); in sfmmu_kpme_sub()
672 kpme->kpe_next->kpe_prev = kpme->kpe_prev; in sfmmu_kpme_sub()
675 kpme->kpe_next = kpme->kpe_prev = NULL; in sfmmu_kpme_sub()
676 kpme->kpe_page = NULL; in sfmmu_kpme_sub()
1729 struct kpme *kpme, *nkpme; in sfmmu_kpm_pageunload() local
1737 for (kpme = pp->p_kpmelist; kpme; kpme = nkpme) { in sfmmu_kpm_pageunload()
1738 ASSERT(kpme->kpe_page == pp); in sfmmu_kpm_pageunload()
1742 "kpme=%p", (void *)pp, (void *)kpme); in sfmmu_kpm_pageunload()
1744 nkpme = kpme->kpe_next; in sfmmu_kpm_pageunload()
1747 sfmmu_kpme_sub(kpme, pp); in sfmmu_kpm_pageunload()