Lines Matching refs:pagev

4363 	prpagev_t *pagev = kmem_alloc(sizeof (prpagev_t), KM_SLEEP);  in pr_pagev_create()  local
4371 pagev->pg_npages = MIN(total_pages, pagev_lim); in pr_pagev_create()
4372 pagev->pg_pnbase = 0; in pr_pagev_create()
4374 pagev->pg_protv = in pr_pagev_create()
4375 kmem_alloc(pagev->pg_npages * sizeof (uint_t), KM_SLEEP); in pr_pagev_create()
4378 pagev->pg_incore = in pr_pagev_create()
4379 kmem_alloc(pagev->pg_npages * sizeof (char), KM_SLEEP); in pr_pagev_create()
4381 pagev->pg_incore = NULL; in pr_pagev_create()
4383 return (pagev); in pr_pagev_create()
4387 pr_pagev_destroy(prpagev_t *pagev) in pr_pagev_destroy() argument
4389 if (pagev->pg_incore != NULL) in pr_pagev_destroy()
4390 kmem_free(pagev->pg_incore, pagev->pg_npages * sizeof (char)); in pr_pagev_destroy()
4392 kmem_free(pagev->pg_protv, pagev->pg_npages * sizeof (uint_t)); in pr_pagev_destroy()
4393 kmem_free(pagev, sizeof (prpagev_t)); in pr_pagev_destroy()
4397 pr_pagev_fill(prpagev_t *pagev, struct seg *seg, caddr_t addr, caddr_t eaddr) in pr_pagev_fill() argument
4411 pagev->pg_pnbase = seg_page(seg, addr); in pr_pagev_fill()
4412 pnlim = pagev->pg_pnbase + pagev->pg_npages; in pr_pagev_fill()
4418 len = pagev->pg_npages * PAGESIZE; in pr_pagev_fill()
4420 if (pagev->pg_incore != NULL) { in pr_pagev_fill()
4425 SEGOP_INCORE(seg, addr, len, pagev->pg_incore); in pr_pagev_fill()
4426 pn = pagev->pg_pnbase; in pr_pagev_fill()
4435 if (pagev->pg_incore[pn++ - pagev->pg_pnbase]) in pr_pagev_fill()
4453 SEGOP_GETPROT(seg, saddr, len - 1, pagev->pg_protv); in pr_pagev_fill()
4458 pr_pagev_nextprot(prpagev_t *pagev, struct seg *seg, in pr_pagev_nextprot() argument
4467 caddr_t base = seg->s_base + pagev->pg_pnbase * PAGESIZE; in pr_pagev_nextprot()
4476 if (pagev->pg_incore != NULL) { in pr_pagev_nextprot()
4477 while (pagev->pg_incore[pn - pagev->pg_pnbase] == 0) { in pr_pagev_nextprot()
4483 if (++pn == pagev->pg_pnbase + pagev->pg_npages) { in pr_pagev_nextprot()
4484 addr = pr_pagev_fill(pagev, seg, addr, eaddr); in pr_pagev_nextprot()
4499 ASSERT(pn >= pagev->pg_pnbase); in pr_pagev_nextprot()
4500 ASSERT(pn < (pagev->pg_pnbase + pagev->pg_npages)); in pr_pagev_nextprot()
4502 prot = pagev->pg_protv[pn - pagev->pg_pnbase]; in pr_pagev_nextprot()
4518 if (++pn == pagev->pg_pnbase + pagev->pg_npages) { in pr_pagev_nextprot()
4519 caddr_t naddr = pr_pagev_fill(pagev, seg, addr, eaddr); in pr_pagev_nextprot()
4530 if (pagev->pg_incore != NULL && in pr_pagev_nextprot()
4531 pagev->pg_incore[pn - pagev->pg_pnbase] == 0) in pr_pagev_nextprot()
4538 nprot = pagev->pg_protv[pn - pagev->pg_pnbase]; in pr_pagev_nextprot()
4674 prpagev_t *pagev; in pr_getprot() local
4684 pagev = pr_pagev_create(seg, check_noreserve); in pr_getprot()
4685 saddr = pr_pagev_fill(pagev, seg, saddr, eaddr); in pr_getprot()
4688 *tmp = pagev; in pr_getprot()
4701 pagev = (prpagev_t *)*tmp; in pr_getprot()
4704 naddr = pr_pagev_nextprot(pagev, seg, saddrp, eaddr, &prot); in pr_getprot()