Lines Matching refs:pwp

168 	struct watched_page *pwp;  in pr_do_mappage()  local
200 if ((pwp = avl_find(&as->a_wpage, &tpw, &where)) == NULL) in pr_do_mappage()
201 pwp = avl_nearest(&as->a_wpage, where, AVL_AFTER); in pr_do_mappage()
203 for (; pwp != NULL && pwp->wp_vaddr < eaddr; in pr_do_mappage()
204 pwp = AVL_NEXT(&as->a_wpage, pwp)) { in pr_do_mappage()
210 prot = pwp->wp_prot; in pr_do_mappage()
219 if ((prot = pwp->wp_oprot) != 0) { in pr_do_mappage()
252 addr = pwp->wp_vaddr; in pr_do_mappage()
255 prot = pwp->wp_prot; in pr_do_mappage()
258 pwp->wp_kmap[xrw]++; in pr_do_mappage()
260 pwp->wp_umap[xrw]++; in pr_do_mappage()
261 pwp->wp_flags |= WP_NOWATCH; in pr_do_mappage()
262 if (pwp->wp_kmap[X] + pwp->wp_umap[X]) in pr_do_mappage()
265 if (pwp->wp_kmap[R] + pwp->wp_umap[R]) in pr_do_mappage()
267 if (pwp->wp_kmap[W] + pwp->wp_umap[W]) in pr_do_mappage()
271 if (sum(pwp->wp_umap) == 0) in pr_do_mappage()
275 ASSERT(pwp->wp_flags & WP_NOWATCH); in pr_do_mappage()
277 ASSERT(pwp->wp_kmap[xrw] != 0); in pr_do_mappage()
278 --pwp->wp_kmap[xrw]; in pr_do_mappage()
280 ASSERT(pwp->wp_umap[xrw] != 0); in pr_do_mappage()
281 --pwp->wp_umap[xrw]; in pr_do_mappage()
283 if (sum(pwp->wp_kmap) + sum(pwp->wp_umap) == 0) in pr_do_mappage()
284 pwp->wp_flags &= ~WP_NOWATCH; in pr_do_mappage()
286 if (pwp->wp_kmap[X] + pwp->wp_umap[X]) in pr_do_mappage()
289 if (pwp->wp_kmap[R] + pwp->wp_umap[R]) in pr_do_mappage()
291 if (pwp->wp_kmap[W] + pwp->wp_umap[W]) in pr_do_mappage()
295 if (sum(pwp->wp_umap) == 0) in pr_do_mappage()
302 if (pwp->wp_oprot != 0) { /* if page exists */ in pr_do_mappage()
384 struct watched_page *pwp, *next; in setallwatch() local
397 pwp = p->p_wprot; in setallwatch()
398 while (pwp != NULL) { in setallwatch()
400 vaddr = pwp->wp_vaddr; in setallwatch()
403 ASSERT(pwp->wp_flags & WP_SETPROT); in setallwatch()
405 !(pwp->wp_flags & WP_NOWATCH)) { in setallwatch()
406 prot = pwp->wp_prot; in setallwatch()
415 next = pwp->wp_list; in setallwatch()
417 if (pwp->wp_read + pwp->wp_write + pwp->wp_exec == 0) { in setallwatch()
422 avl_remove(&as->a_wpage, pwp); in setallwatch()
423 kmem_free(pwp, sizeof (struct watched_page)); in setallwatch()
425 pwp->wp_flags &= ~WP_SETPROT; in setallwatch()
428 pwp = next; in setallwatch()
441 register struct watched_page *pwp; in pr_is_watchpage_as() local
461 pwp = avl_find(&as->a_wpage, &tpw, NULL); in pr_is_watchpage_as()
462 if (pwp != NULL) { in pr_is_watchpage_as()
463 ASSERT(addr >= pwp->wp_vaddr && in pr_is_watchpage_as()
464 addr < pwp->wp_vaddr + PAGESIZE); in pr_is_watchpage_as()
465 if (pwp->wp_oprot != 0) { in pr_is_watchpage_as()
466 prot = pwp->wp_prot; in pr_is_watchpage_as()