Lines Matching defs:pwp

168 	struct watched_page *pwp;
195 if ((pwp = avl_find(&as->a_wpage, &tpw, &where)) == NULL)
196 pwp = avl_nearest(&as->a_wpage, where, AVL_AFTER);
198 for (; pwp != NULL && pwp->wp_vaddr < eaddr;
199 pwp = AVL_NEXT(&as->a_wpage, pwp)) {
205 prot = pwp->wp_prot;
214 if ((prot = pwp->wp_oprot) != 0) {
241 addr = pwp->wp_vaddr;
244 prot = pwp->wp_prot;
247 pwp->wp_kmap[xrw]++;
249 pwp->wp_umap[xrw]++;
250 pwp->wp_flags |= WP_NOWATCH;
251 if (pwp->wp_kmap[X] + pwp->wp_umap[X])
254 if (pwp->wp_kmap[R] + pwp->wp_umap[R])
256 if (pwp->wp_kmap[W] + pwp->wp_umap[W])
260 if (sum(pwp->wp_umap) == 0)
264 ASSERT(pwp->wp_flags & WP_NOWATCH);
266 ASSERT(pwp->wp_kmap[xrw] != 0);
267 --pwp->wp_kmap[xrw];
269 ASSERT(pwp->wp_umap[xrw] != 0);
270 --pwp->wp_umap[xrw];
272 if (sum(pwp->wp_kmap) + sum(pwp->wp_umap) == 0)
273 pwp->wp_flags &= ~WP_NOWATCH;
275 if (pwp->wp_kmap[X] + pwp->wp_umap[X])
278 if (pwp->wp_kmap[R] + pwp->wp_umap[R])
280 if (pwp->wp_kmap[W] + pwp->wp_umap[W])
284 if (sum(pwp->wp_umap) == 0)
291 if (pwp->wp_oprot != 0) { /* if page exists */
368 struct watched_page *pwp, *next;
381 pwp = p->p_wprot;
382 while (pwp != NULL) {
384 vaddr = pwp->wp_vaddr;
387 ASSERT(pwp->wp_flags & WP_SETPROT);
389 !(pwp->wp_flags & WP_NOWATCH)) {
390 prot = pwp->wp_prot;
399 next = pwp->wp_list;
401 if (pwp->wp_read + pwp->wp_write + pwp->wp_exec == 0) {
406 avl_remove(&as->a_wpage, pwp);
407 kmem_free(pwp, sizeof (struct watched_page));
409 pwp->wp_flags &= ~WP_SETPROT;
412 pwp = next;
424 register struct watched_page *pwp;
444 pwp = avl_find(&as->a_wpage, &tpw, NULL);
445 if (pwp != NULL) {
446 ASSERT(addr >= pwp->wp_vaddr &&
447 addr < pwp->wp_vaddr + PAGESIZE);
448 if (pwp->wp_oprot != 0) {
449 prot = pwp->wp_prot;