Lines Matching defs:pcp
238 advance_prpageheader_cur_nextmapping(prpageheader_cur_t *pcp)
244 ASSERT(pcp->pr_map < pcp->pr_nmap);
245 if ((pcp->pr_map + 1) == pcp->pr_nmap)
247 pcp->pr_map++;
248 if (pcp->pr_pgoff < pcp->pr_npage) {
249 pcp->pr_pdaddr = (caddr_t)(uintptr_t)
250 ((uintptr_t)pcp->pr_pdaddr +
251 (pcp->pr_npage - pcp->pr_pgoff));
252 pcp->pr_pgoff = pcp->pr_npage;
257 pcp->pr_pdaddr = (caddr_t)(((uintptr_t)pcp->pr_pdaddr + 7) & ~7);
258 pap = (prasmap_t *)pcp->pr_pdaddr;
259 pcp->pr_pgoff = 0;
260 pcp->pr_npage = pap->pr_npage;
261 pcp->pr_pagesize = pap->pr_pagesize;
262 pcp->pr_addr = pap->pr_vaddr;
263 pcp->pr_pdaddr = pap + 1;
272 (void *)pcp->pr_addr);
280 pcp->pr_rss = -1;
281 pcp->pr_pg_rss = -1;
282 for (i = 0; i < pcp->pr_nxmap; i++) {
283 prxmap_t *xmap = &pcp->pr_xmap[i];
285 if (pcp->pr_addr == xmap->pr_vaddr && xmap->pr_size ==
286 (pcp->pr_npage * pcp->pr_pagesize)) {
287 pcp->pr_rss = xmap->pr_rss;
292 pcp->pr_pg_rss = xmap->pr_anon;
296 if (pcp->pr_rss == 0) {
298 (void *)pcp->pr_addr);
300 } else if (pcp->pr_pg_rss == 0) {
302 (void *)pcp->pr_addr);
306 return (pcp->pr_addr);
314 advance_prpageheader_cur(prpageheader_cur_t *pcp)
316 ASSERT(pcp->pr_pgoff < pcp->pr_npage);
317 if ((pcp->pr_pgoff + 1) == pcp->pr_npage)
319 pcp->pr_pdaddr = (caddr_t)pcp->pr_pdaddr + 1;
320 pcp->pr_pgoff++;
322 ASSERT((*(char *)pcp->pr_pdaddr & ~(PG_MODIFIED | PG_REFERENCED)) == 0);
323 return ((caddr_t)pcp->pr_addr + pcp->pr_pgoff * pcp->pr_pagesize);
331 set_prpageheader_cur(prpageheader_cur_t *pcp, prpageheader_t *php,
334 bzero(pcp, sizeof (*pcp));
335 pcp->pr_nmap = php->pr_nmap;
336 pcp->pr_map = -1;
337 pcp->pr_prpageheader = php;
338 pcp->pr_xmap = xmap;
339 pcp->pr_nxmap = nxmap;
340 pcp->pr_pdaddr = (prpageheader_t *)php + 1;
342 return ((void *)advance_prpageheader_cur_nextmapping(pcp));
350 set_prpageheader_cur_addr(prpageheader_cur_t *pcp, prpageheader_t *php,
353 void *addr = set_prpageheader_cur(pcp, php, xmap, nxmap);
356 if (naddr < (void *)((caddr_t)pcp->pr_addr +
357 pcp->pr_pagesize * pcp->pr_npage)) {
359 (uintptr_t)pcp->pr_addr) / pcp->pr_pagesize;
360 pcp->pr_pgoff += pgdiff;
361 pcp->pr_pdaddr = (caddr_t)pcp->pr_pdaddr + pgdiff;
362 addr = (caddr_t)pcp->pr_addr + pcp->pr_pagesize *
363 pcp->pr_pgoff;
367 (void *)advance_prpageheader_cur_nextmapping(pcp);