Lines Matching defs:pp

111 #define	MLIST_MUTEX(pp) \
112 &mlist_lock[((pp)->p_pagenum + ((pp)->p_pagenum >> 9)) & \
282 x86_hm_held(page_t *pp)
284 ASSERT(pp != NULL);
287 return (MUTEX_HELD(MLIST_MUTEX(pp)));
291 x86_hm_enter(page_t *pp)
293 ASSERT(pp != NULL);
295 mutex_enter(MLIST_MUTEX(pp));
299 x86_hm_exit(page_t *pp)
301 ASSERT(pp != NULL);
303 mutex_exit(MLIST_MUTEX(pp));
310 hment_insert(hment_t *hm, page_t *pp)
314 ASSERT(x86_hm_held(pp));
315 ASSERT(!pp->p_embed);
320 ++pp->p_share;
321 hm->hm_next = pp->p_mapping;
322 if (pp->p_mapping != NULL)
323 ((hment_t *)pp->p_mapping)->hm_prev = hm;
324 pp->p_mapping = hm;
353 hment_prepare(htable_t *htable, uint_t entry, page_t *pp)
357 ASSERT(x86_hm_held(pp));
366 if (pp->p_mapping == NULL) {
367 ASSERT(!pp->p_embed);
368 ASSERT(pp->p_share == 0);
382 if (pp->p_embed) {
385 ASSERT(pp->p_mapping != NULL);
392 if (pp->p_mapping == htable && pp->p_mlentry == entry) {
403 hm->hm_htable = pp->p_mapping;
404 hm->hm_entry = pp->p_mlentry;
405 hm->hm_pfn = pp->p_pagenum;
406 pp->p_mapping = NULL;
407 pp->p_share = 0;
408 pp->p_embed = 0;
409 hment_insert(hm, pp);
427 x86_hm_exit(pp);
429 x86_hm_enter(pp);
436 x86_hm_exit(pp);
439 x86_hm_enter(pp);
441 ASSERT(x86_hm_held(pp));
451 hment_assign(htable_t *htable, uint_t entry, page_t *pp, hment_t *hm)
453 ASSERT(x86_hm_held(pp));
460 if (pp->p_mapping == NULL) {
462 ASSERT(!pp->p_embed);
463 ASSERT(pp->p_share == 0);
464 pp->p_embed = 1;
465 pp->p_mapping = htable;
466 pp->p_mlentry = entry;
473 ASSERT(!pp->p_embed);
481 hm->hm_pfn = pp->p_pagenum;
482 hment_insert(hm, pp);
491 hment_walk(page_t *pp, htable_t **ht, uint_t *entry, hment_t *prev)
495 ASSERT(x86_hm_held(pp));
497 if (pp->p_embed) {
499 *ht = (htable_t *)pp->p_mapping;
500 *entry = pp->p_mlentry;
509 hm = (hment_t *)pp->p_mapping;
529 hment_remove(page_t *pp, htable_t *ht, uint_t entry)
536 ASSERT(x86_hm_held(pp));
541 if (pp->p_embed) {
542 ASSERT(ht == (htable_t *)pp->p_mapping);
543 ASSERT(entry == pp->p_mlentry);
544 ASSERT(pp->p_share == 0);
545 pp->p_mapping = NULL;
546 pp->p_mlentry = 0;
547 pp->p_embed = 0;
555 ASSERT(pp->p_share != 0);
558 dummy.hm_pfn = pp->p_pagenum;
563 panic("hment_remove() missing in hash table pp=%lx, ht=%lx,"
564 "entry=0x%x hash index=0x%x", (uintptr_t)pp, (uintptr_t)ht,
577 pp->p_mapping = hm->hm_next;
579 --pp->p_share;
670 hment_mapcnt(page_t *pp)
677 x86_hm_enter(pp);
678 if (pp->p_mapping == NULL)
680 else if (pp->p_embed)
683 cnt = pp->p_share;
684 x86_hm_exit(pp);
689 for (szc = 1; szc <= pp->p_szc; ++szc) {
690 larger = PP_GROUPLEADER(pp, szc);
691 if (larger == pp) /* don't double count large mappings */
724 page_t *pp = last;
731 if (pp == NULL)
732 last = pp = page_first();
736 pp = page_next(pp);
737 if (pp == NULL)
738 pp = page_first();
743 if (pp == last)
749 if (pp->p_mapping == NULL || pp->p_embed)
755 x86_hm_enter(pp);
756 if (!pp->p_embed) {
757 for (hm = pp->p_mapping; hm; hm = hm->hm_next) {
768 x86_hm_exit(pp);
775 hm2 = hati_page_unmap(pp, ht, hm->hm_entry);
777 last_page = pp;