Lines Matching refs:vpage
183 #define vpgtob(n) ((n) * sizeof (struct vpage)) /* For brevity */
209 u_offset_t, struct vpage *, page_t **, uint_t,
225 static int segvn_claim_pages(struct seg *, struct vpage *, u_offset_t,
837 svd->vpage = NULL; in segvn_create()
1030 struct vpage *vpage1 = svd1->vpage; in segvn_concat()
1031 struct vpage *vpage2 = svd2->vpage, *nvpage = NULL; in segvn_concat()
1093 struct vpage *vp, *evp; in segvn_concat()
1237 svd2->vpage = NULL; in segvn_concat()
1249 svd1->vpage = nvpage; in segvn_concat()
1273 struct vpage *new_vpage; in segvn_extend_prev()
1341 if (svd1->vpage != NULL) { in segvn_extend_prev()
1342 struct vpage *vp, *evp; in segvn_extend_prev()
1348 bcopy(svd1->vpage, new_vpage, vpgtob(seg_pages(seg1))); in segvn_extend_prev()
1349 kmem_free(svd1->vpage, vpgtob(seg_pages(seg1))); in segvn_extend_prev()
1350 svd1->vpage = new_vpage; in segvn_extend_prev()
1365 ASSERT(svd1->vpage != NULL || svd1->pageswap == 0); in segvn_extend_prev()
1391 struct vpage *new_vpage; in segvn_extend_next()
1454 if (svd2->vpage != NULL) { in segvn_extend_next()
1455 struct vpage *vp, *evp; in segvn_extend_next()
1465 bcopy(svd2->vpage, new_vpage + seg_pages(seg1), in segvn_extend_next()
1467 kmem_free(svd2->vpage, vpgtob(seg_pages(seg2))); in segvn_extend_next()
1468 svd2->vpage = new_vpage; in segvn_extend_next()
1483 ASSERT(svd2->vpage != NULL || svd2->pageswap == 0); in segvn_extend_next()
1529 struct vpage *vpp; in segvn_dup_pages()
1531 vpp = &svd->vpage[seg_page(seg, addr)]; in segvn_dup_pages()
1723 newsvd->vpage = NULL; in segvn_dup()
1753 if (svd->vpage != NULL) { in segvn_dup()
1755 struct vpage *ovp = svd->vpage; in segvn_dup()
1756 struct vpage *nvp; in segvn_dup()
1758 nvp = newsvd->vpage = in segvn_dup()
1765 newsvd->vpage = NULL; in segvn_dup()
1844 struct vpage *vp, *evp; in segvn_count_swap_by_vpages()
1848 ASSERT(svd->vpage != NULL); in segvn_count_swap_by_vpages()
1850 evp = &svd->vpage[seg_page(seg, seg->s_base + seg->s_size)]; in segvn_count_swap_by_vpages()
1852 for (vp = svd->vpage; vp < evp; vp++) { in segvn_count_swap_by_vpages()
2031 if (svd->vpage != NULL) { in segvn_unmap()
2033 struct vpage *ovpage; in segvn_unmap()
2035 ovpage = svd->vpage; /* keep pointer to vpage */ in segvn_unmap()
2038 svd->vpage = kmem_alloc(nbytes, KM_SLEEP); in segvn_unmap()
2039 bcopy(&ovpage[dpages], svd->vpage, nbytes); in segvn_unmap()
2137 if (svd->vpage != NULL) { in segvn_unmap()
2139 struct vpage *ovpage; in segvn_unmap()
2141 ovpage = svd->vpage; /* keep pointer to vpage */ in segvn_unmap()
2144 svd->vpage = kmem_alloc(nbytes, KM_SLEEP); in segvn_unmap()
2145 bcopy(ovpage, svd->vpage, nbytes); in segvn_unmap()
2271 if (svd->vpage == NULL) { in segvn_unmap()
2272 nsvd->vpage = NULL; in segvn_unmap()
2276 struct vpage *ovpage; in segvn_unmap()
2278 ovpage = svd->vpage; /* keep pointer to vpage */ in segvn_unmap()
2282 svd->vpage = kmem_alloc(nbytes, KM_SLEEP); in segvn_unmap()
2284 bcopy(ovpage, svd->vpage, nbytes); in segvn_unmap()
2288 nsvd->vpage = kmem_alloc(nbytes, KM_SLEEP); in segvn_unmap()
2290 bcopy(&ovpage[opages - npages], nsvd->vpage, nbytes); in segvn_unmap()
2446 if (svd->vpage != NULL) { in segvn_free()
2447 kmem_free(svd->vpage, vpgtob(npages)); in segvn_free()
2448 svd->vpage = NULL; in segvn_free()
2711 struct vpage *vpage, /* pointer to vpage for vp, off */ in segvn_faultpage() argument
2766 prot = VPP_PROT(vpage); in segvn_faultpage()
2866 if (AS_ISPGLCK(seg->s_as) && vpage != NULL && in segvn_faultpage()
2868 !VPP_ISPPLOCK(vpage)) { in segvn_faultpage()
2874 claim = VPP_PROT(vpage) & PROT_WRITE; in segvn_faultpage()
2876 VPP_SETPPLOCK(vpage); in segvn_faultpage()
3037 vpage != NULL && VPP_ISPPLOCK(vpage)))) { in segvn_faultpage()
3065 if (vpage != NULL && VPP_ISPPLOCK(vpage)) in segvn_faultpage()
3846 struct vpage *vpage = (svd->vpage != NULL) ? in segvn_fault_vnodepages() local
3847 &svd->vpage[seg_page(seg, a)] : NULL; in segvn_fault_vnodepages()
3988 ASSERT(vpage != NULL); in segvn_fault_vnodepages()
3989 prot = VPP_PROT(vpage); in segvn_fault_vnodepages()
4177 seg, a, prot, ppa, vpage, segvn_anypgsz, in segvn_fault_vnodepages()
4512 if (vpage != NULL) { in segvn_fault_vnodepages()
4513 vpage += pages; in segvn_fault_vnodepages()
4564 vpage = (svd->vpage != NULL) ? in segvn_fault_vnodepages()
4565 &svd->vpage[seg_page(seg, a)] : NULL; in segvn_fault_vnodepages()
4588 vpage = (svd->vpage != NULL) ? in segvn_fault_vnodepages()
4589 &svd->vpage[seg_page(seg, a)] : NULL; in segvn_fault_vnodepages()
4655 struct vpage *vpage = (svd->vpage != NULL) ? in segvn_fault_anonpages() local
4656 &svd->vpage[seg_page(seg, a)] : NULL; in segvn_fault_anonpages()
4718 ASSERT(vpage != NULL); in segvn_fault_anonpages()
4719 prot = VPP_PROT(vpage); in segvn_fault_anonpages()
4743 prot, &vpprot, ppa, &ppa_szc, vpage, rw, brkcow, in segvn_fault_anonpages()
4790 if (vpage != NULL) in segvn_fault_anonpages()
4791 vpage += pages; in segvn_fault_anonpages()
4866 vpage = (svd->vpage != NULL) ? in segvn_fault_anonpages()
4867 &svd->vpage[seg_page(seg, a)] : NULL; in segvn_fault_anonpages()
4889 vpage = (svd->vpage != NULL) ? in segvn_fault_anonpages()
4890 &svd->vpage[seg_page(seg, a)] : NULL; in segvn_fault_anonpages()
4940 struct vpage *vpage; in segvn_fault() local
5230 if (svd->vpage == NULL) in segvn_fault()
5231 vpage = NULL; in segvn_fault()
5233 vpage = &svd->vpage[page]; in segvn_fault()
5244 struct vpage *vpp = NULL; in segvn_fault()
5253 VPP_ADVICE(vpage) == MADV_SEQUENTIAL)) { in segvn_fault()
5256 if (vpage != NULL) in segvn_fault()
5257 vpp = &svd->vpage[fpage]; in segvn_fault()
5263 (!svd->pageadvice || (vpage && in segvn_fault()
5496 err = segvn_faultpage(hat, seg, a, off, vpage, plp, vpprot, in segvn_fault()
5511 if (vpage) { in segvn_fault()
5512 vpage++; in segvn_fault()
5513 } else if (svd->vpage) { in segvn_fault()
5515 vpage = &svd->vpage[++page]; in segvn_fault()
5569 prot = VPP_PROT(&svd->vpage[page]) & vpprot; in segvn_fault()
5683 struct vpage *cvp, *svp = NULL, *evp = NULL; in segvn_setprot()
5824 if (svd->vpage == NULL) { in segvn_setprot()
5829 svp = &svd->vpage[seg_page(seg, addr)]; in segvn_setprot()
5830 evp = &svd->vpage[seg_page(seg, in segvn_setprot()
5870 ASSERT(svd->vpage != NULL); in segvn_setprot()
5899 if (addr == seg->s_base && len == seg->s_size && svd->vpage == NULL) { in segvn_setprot()
5922 if (svd->vpage == NULL) { in segvn_setprot()
5935 evp = &svd->vpage[seg_page(seg, addr + len)]; in segvn_setprot()
5941 for (svp = &svd->vpage[seg_page(seg, addr)]; svp < evp; svp++) { in segvn_setprot()
6019 len = (svp - &svd->vpage[seg_page(seg, addr)]) * in segvn_setprot()
6030 if (svd->vpage == NULL) { in segvn_setprot()
6035 evp = &svd->vpage[seg_page(seg, addr + len)]; in segvn_setprot()
6036 for (svp = &svd->vpage[seg_page(seg, addr)]; svp < evp; svp++) { in segvn_setprot()
6340 seg->s_size, szc, svd->prot, svd->vpage, in segvn_setpagesize()
6375 struct vpage *vpage = svd->vpage; in segvn_clrszc() local
6433 ASSERT(vpage != NULL || svd->pageprot == 0); in segvn_clrszc()
6434 if (vpage != NULL) { in segvn_clrszc()
6436 prot = VPP_PROT(vpage); in segvn_clrszc()
6437 pageflag = VPP_ISPPLOCK(vpage) ? LOCK_PAGE : 0; in segvn_clrszc()
6443 seg, a, prot, vpage, svd->cred)) != 0) { in segvn_clrszc()
6466 vpage = (vpage == NULL) ? NULL : vpage + pages; in segvn_clrszc()
6479 struct vpage *svp, in segvn_claim_pages()
6489 struct vpage *evp = svp + pgcnt; in segvn_claim_pages()
6490 caddr_t addr = ((uintptr_t)(svp - svd->vpage) << PAGESHIFT) in segvn_claim_pages()
6501 ASSERT(svd->vpage != NULL); in segvn_claim_pages()
6642 if (svd->vpage != NULL) { in segvn_split_seg()
6645 struct vpage *ovpage = svd->vpage; in segvn_split_seg()
6647 svd->vpage = kmem_alloc(bytes, KM_SLEEP); in segvn_split_seg()
6648 bcopy(ovpage, svd->vpage, bytes); in segvn_split_seg()
6649 nsvd->vpage = kmem_alloc(nbytes, KM_SLEEP); in segvn_split_seg()
6650 bcopy(ovpage + seg_pages(seg), nsvd->vpage, nbytes); in segvn_split_seg()
6875 struct vpage *vp, *evp; in segvn_checkprot()
6894 evp = &svd->vpage[seg_page(seg, addr + len)]; in segvn_checkprot()
6895 for (vp = &svd->vpage[seg_page(seg, addr)]; vp < evp; vp++) { in segvn_checkprot()
6924 protv[pgno] = VPP_PROT(&svd->vpage[pgno+pgoff]); in segvn_getprot()
7007 else if (svd->pageadvice && svd->vpage) { in segvn_kluster()
7008 struct vpage *bvpp, *evpp; in segvn_kluster()
7010 bvpp = &svd->vpage[page]; in segvn_kluster()
7011 evpp = &svd->vpage[page + pd]; in segvn_kluster()
7256 struct vpage *vpp; in segvn_sync()
7319 vpp = svd->vpage; in segvn_sync()
7344 vpp = &svd->vpage[seg_page(seg, addr)]; in segvn_sync()
7486 struct vpage *vpp; in segvn_incore()
7509 vpp = (svd->vpage) ? &svd->vpage[p]: NULL; in segvn_incore()
7644 struct vpage *vpp; in segvn_lockop()
7645 struct vpage *evp; in segvn_lockop()
7723 if ((vpp = svd->vpage) == NULL) { in segvn_lockop()
7726 if (svd->vpage == NULL) { in segvn_lockop()
7752 evp = &svd->vpage[seg_page(seg, addr + len)]; in segvn_lockop()
7761 for (vpp = &svd->vpage[seg_page(seg, addr)]; vpp < evp; in segvn_lockop()
7814 for (vpp = &svd->vpage[seg_page(seg, addr)]; vpp < evp; in segvn_lockop()
8347 if (svd->vpage == NULL) { in segvn_advise()
8353 struct vpage *bvpp, *evpp; in segvn_advise()
8559 bvpp = &svd->vpage[page]; in segvn_advise()
8560 evpp = &svd->vpage[page + (len >> PAGESHIFT)]; in segvn_advise()
8587 struct vpage *bvpp, *evpp; in segvn_inherit()
8632 if (svd->vpage == NULL) { in segvn_inherit()
8634 if (svd->vpage == NULL) { in segvn_inherit()
8642 bvpp = &svd->vpage[page]; in segvn_inherit()
8643 evpp = &svd->vpage[page + (len >> PAGESHIFT)]; in segvn_inherit()
8660 struct vpage *vp, *evp; in segvn_vpage()
8669 if (svd->vpage == NULL) { in segvn_vpage()
8685 ulong_t mem_needed = seg_pages(seg) * sizeof (struct vpage); in segvn_vpage()
8695 svd->vpage = kmem_zalloc(mem_needed, KM_SLEEP); in segvn_vpage()
8696 evp = &svd->vpage[seg_page(seg, seg->s_base + seg->s_size)]; in segvn_vpage()
8697 for (vp = svd->vpage; vp < evp; vp++) { in segvn_vpage()
8975 struct vpage *vp = &svd->vpage[seg_page(seg, lpgaddr)]; in segvn_pagelock()
8976 struct vpage *evp = &svd->vpage[seg_page(seg, addr)]; in segvn_pagelock()
9012 struct vpage *vp; in segvn_pagelock()
9013 struct vpage *evp; in segvn_pagelock()
9015 vp = &svd->vpage[seg_page(seg, addr + len)]; in segvn_pagelock()
9016 evp = &svd->vpage[seg_page(seg, lpgeaddr)]; in segvn_pagelock()
9183 struct vpage *vp; in segvn_pagelock()
9187 vp = &svd->vpage[seg_page(seg, a)]; in segvn_pagelock()
9243 struct vpage *vp; in segvn_pagelock()
9247 vp = &svd->vpage[seg_page(seg, a)]; in segvn_pagelock()
9339 struct vpage *vpage; in segvn_pagelock() local
9345 if (svd->vpage != NULL) { in segvn_pagelock()
9346 vpage = &svd->vpage[seg_page(seg, a)]; in segvn_pagelock()
9348 vpage = NULL; in segvn_pagelock()
9355 vpage, &pp, 0, F_INVAL, rw, 1); in segvn_pagelock()
9662 struct vpage *vpage; in sameprot() local
9669 ASSERT(svd->vpage != NULL); in sameprot()
9671 vpage = &svd->vpage[seg_page(seg, a)]; in sameprot()
9672 prot = VPP_PROT(vpage); in sameprot()
9673 vpage++; in sameprot()
9676 if (prot != VPP_PROT(vpage)) in sameprot()
9678 vpage++; in sameprot()