Lines Matching refs:pwp

3307 	struct watched_page *pwp;  in pr_free_watched_pages()  local
3318 pwp = avl_first(&as->a_wpage); in pr_free_watched_pages()
3321 while ((pwp = avl_destroy_nodes(&as->a_wpage, &cookie)) != NULL) { in pr_free_watched_pages()
3323 if ((prot = pwp->wp_oprot) != 0) { in pr_free_watched_pages()
3324 caddr_t addr = pwp->wp_vaddr; in pr_free_watched_pages()
3328 if ((pwp->wp_prot != prot || in pr_free_watched_pages()
3329 (pwp->wp_flags & WP_NOWATCH)) && in pr_free_watched_pages()
3339 kmem_free(pwp, sizeof (struct watched_page)); in pr_free_watched_pages()
3359 struct watched_page *pwp, *newpwp; in set_watched_page() local
3374 pwp = kmem_zalloc(sizeof (struct watched_page), KM_SLEEP); in set_watched_page()
3375 pwp->wp_list = newpwp; in set_watched_page()
3376 newpwp = pwp; in set_watched_page()
3396 pwp = newpwp->wp_list; in set_watched_page()
3398 newpwp = pwp; in set_watched_page()
3404 if ((pwp = avl_find(pwp_tree, &tpw, &where)) == NULL) { in set_watched_page()
3405 pwp = newpwp; in set_watched_page()
3407 pwp->wp_list = NULL; in set_watched_page()
3408 pwp->wp_vaddr = (caddr_t)((uintptr_t)vaddr & in set_watched_page()
3410 avl_insert(pwp_tree, pwp, where); in set_watched_page()
3413 ASSERT(vaddr >= pwp->wp_vaddr && vaddr < pwp->wp_vaddr + PAGESIZE); in set_watched_page()
3416 pwp->wp_read--; in set_watched_page()
3418 pwp->wp_write--; in set_watched_page()
3420 pwp->wp_exec--; in set_watched_page()
3422 ASSERT(pwp->wp_read >= 0); in set_watched_page()
3423 ASSERT(pwp->wp_write >= 0); in set_watched_page()
3424 ASSERT(pwp->wp_exec >= 0); in set_watched_page()
3427 pwp->wp_read++; in set_watched_page()
3429 pwp->wp_write++; in set_watched_page()
3431 pwp->wp_exec++; in set_watched_page()
3434 vaddr = pwp->wp_vaddr; in set_watched_page()
3435 if (pwp->wp_oprot == 0 && in set_watched_page()
3438 pwp->wp_oprot = (uchar_t)prot; in set_watched_page()
3439 pwp->wp_prot = (uchar_t)prot; in set_watched_page()
3441 if (pwp->wp_oprot != 0) { in set_watched_page()
3442 prot = pwp->wp_oprot; in set_watched_page()
3443 if (pwp->wp_read) in set_watched_page()
3445 if (pwp->wp_write) in set_watched_page()
3447 if (pwp->wp_exec) in set_watched_page()
3449 if (!(pwp->wp_flags & WP_NOWATCH) && in set_watched_page()
3450 pwp->wp_prot != prot && in set_watched_page()
3451 (pwp->wp_flags & WP_SETPROT) == 0) { in set_watched_page()
3452 pwp->wp_flags |= WP_SETPROT; in set_watched_page()
3453 pwp->wp_list = p->p_wprot; in set_watched_page()
3454 p->p_wprot = pwp; in set_watched_page()
3456 pwp->wp_prot = (uchar_t)prot; in set_watched_page()
3464 if ((vaddr = pwp->wp_vaddr + PAGESIZE) < eaddr) in set_watched_page()
3473 pwp = newpwp->wp_list; in set_watched_page()
3475 newpwp = pwp; in set_watched_page()
3489 struct watched_page *pwp; in clear_watched_page() local
3503 pwp = avl_find(tree, &tpw, &where); in clear_watched_page()
3504 if (pwp == NULL) in clear_watched_page()
3505 pwp = avl_nearest(tree, where, AVL_AFTER); in clear_watched_page()
3507 while (pwp != NULL && pwp->wp_vaddr < eaddr) { in clear_watched_page()
3508 ASSERT(vaddr <= pwp->wp_vaddr); in clear_watched_page()
3511 pwp->wp_read--; in clear_watched_page()
3513 pwp->wp_write--; in clear_watched_page()
3515 pwp->wp_exec--; in clear_watched_page()
3517 if (pwp->wp_read + pwp->wp_write + pwp->wp_exec != 0) { in clear_watched_page()
3521 if (pwp->wp_oprot != 0) { in clear_watched_page()
3522 uint_t prot = pwp->wp_oprot; in clear_watched_page()
3524 if (pwp->wp_read) in clear_watched_page()
3527 if (pwp->wp_write) in clear_watched_page()
3529 if (pwp->wp_exec) in clear_watched_page()
3532 if (!(pwp->wp_flags & WP_NOWATCH) && in clear_watched_page()
3533 pwp->wp_prot != prot && in clear_watched_page()
3534 (pwp->wp_flags & WP_SETPROT) == 0) { in clear_watched_page()
3535 pwp->wp_flags |= WP_SETPROT; in clear_watched_page()
3536 pwp->wp_list = p->p_wprot; in clear_watched_page()
3537 p->p_wprot = pwp; in clear_watched_page()
3539 pwp->wp_prot = (uchar_t)prot; in clear_watched_page()
3546 if (pwp->wp_oprot != 0) { in clear_watched_page()
3547 pwp->wp_prot = pwp->wp_oprot; in clear_watched_page()
3548 if ((pwp->wp_flags & WP_SETPROT) == 0) { in clear_watched_page()
3549 pwp->wp_flags |= WP_SETPROT; in clear_watched_page()
3550 pwp->wp_list = p->p_wprot; in clear_watched_page()
3551 p->p_wprot = pwp; in clear_watched_page()
3556 pwp = AVL_NEXT(tree, pwp); in clear_watched_page()
3568 struct watched_page *pwp; in getwatchprot() local
3574 if ((pwp = avl_find(&as->a_wpage, &tpw, NULL)) != NULL) in getwatchprot()
3575 *prot = pwp->wp_oprot; in getwatchprot()