Lines Matching refs:vmp
1217 for (vm_page_t *vmp = list_head(&vmc->vmc_held_pages); in vmc_space_unmap() local
1218 vmp != NULL; in vmc_space_unmap()
1219 vmp = list_next(&vmc->vmc_held_pages, vmc)) { in vmc_space_unmap()
1220 if (vmp->vmp_gpa < addr || in vmc_space_unmap()
1221 vmp->vmp_gpa >= (addr + size)) { in vmc_space_unmap()
1225 if (vmp->vmp_obj_ref == NULL) { in vmc_space_unmap()
1227 vmp->vmp_obj_ref = vmo; in vmc_space_unmap()
1229 vmp->vmp_ptep = NULL; in vmc_space_unmap()
1235 VERIFY3P(vmp->vmp_ptep, ==, NULL); in vmc_space_unmap()
1265 for (vm_page_t *vmp = list_head(&vmc->vmc_held_pages); in vmc_space_orphan() local
1266 vmp != NULL; in vmc_space_orphan()
1267 vmp = list_next(&vmc->vmc_held_pages, vmp)) { in vmc_space_orphan()
1268 ASSERT3P(vmp->vmp_ptep, ==, NULL); in vmc_space_orphan()
1269 ASSERT3P(vmp->vmp_obj_ref, !=, NULL); in vmc_space_orphan()
1293 vm_page_t *vmp; in vmc_hold_ext() local
1302 vmp = kmem_alloc(sizeof (*vmp), KM_SLEEP); in vmc_hold_ext()
1304 kmem_free(vmp, sizeof (*vmp)); in vmc_hold_ext()
1310 kmem_free(vmp, sizeof (*vmp)); in vmc_hold_ext()
1315 vmp->vmp_client = vmc; in vmc_hold_ext()
1316 vmp->vmp_chain = NULL; in vmc_hold_ext()
1317 vmp->vmp_gpa = gpa; in vmc_hold_ext()
1318 vmp->vmp_pfn = pfn; in vmc_hold_ext()
1319 vmp->vmp_ptep = ptep; in vmc_hold_ext()
1320 vmp->vmp_obj_ref = NULL; in vmc_hold_ext()
1321 vmp->vmp_prot = (uint8_t)prot; in vmc_hold_ext()
1322 vmp->vmp_flags = (uint8_t)flags; in vmc_hold_ext()
1323 list_insert_tail(&vmc->vmc_held_pages, vmp); in vmc_hold_ext()
1326 return (vmp); in vmc_hold_ext()
1440 vmp_ptr(const vm_page_t *vmp) in vmp_ptr() argument
1442 ASSERT3U(vmp->vmp_pfn, !=, PFN_INVALID); in vmp_ptr()
1444 const uintptr_t paddr = (vmp->vmp_pfn << PAGESHIFT); in vmp_ptr()
1455 vmp_get_readable(const vm_page_t *vmp) in vmp_get_readable() argument
1457 ASSERT(vmp->vmp_prot & PROT_READ); in vmp_get_readable()
1459 return (vmp_ptr(vmp)); in vmp_get_readable()
1469 vmp_get_writable(const vm_page_t *vmp) in vmp_get_writable() argument
1471 ASSERT(vmp->vmp_prot & PROT_WRITE); in vmp_get_writable()
1473 return (vmp_ptr(vmp)); in vmp_get_writable()
1480 vmp_get_pfn(const vm_page_t *vmp) in vmp_get_pfn() argument
1482 return (vmp->vmp_pfn); in vmp_get_pfn()
1490 vmp_mark_dirty(vm_page_t *vmp) in vmp_mark_dirty() argument
1492 ASSERT((vmp->vmp_prot & PROT_WRITE) != 0); in vmp_mark_dirty()
1494 atomic_and_8(&vmp->vmp_flags, ~VPF_DEFER_DIRTY); in vmp_mark_dirty()
1501 vmp_chain(vm_page_t *vmp, vm_page_t *to_chain) in vmp_chain() argument
1503 ASSERT3P(vmp->vmp_chain, ==, NULL); in vmp_chain()
1505 vmp->vmp_chain = to_chain; in vmp_chain()
1512 vmp_next(const vm_page_t *vmp) in vmp_next() argument
1514 return (vmp->vmp_chain); in vmp_next()
1518 vmp_release_inner(vm_page_t *vmp, vm_client_t *vmc) in vmp_release_inner() argument
1524 list_remove(&vmc->vmc_held_pages, vmp); in vmp_release_inner()
1525 if (vmp->vmp_obj_ref != NULL) { in vmp_release_inner()
1526 ASSERT3P(vmp->vmp_ptep, ==, NULL); in vmp_release_inner()
1528 vm_object_release(vmp->vmp_obj_ref); in vmp_release_inner()
1531 ASSERT3P(vmp->vmp_ptep, !=, NULL); in vmp_release_inner()
1541 if ((vmp->vmp_prot & PROT_WRITE) != 0 && in vmp_release_inner()
1542 (vmp->vmp_flags & VPF_DEFER_DIRTY) == 0 && in vmp_release_inner()
1545 (void) vmm_gpt_reset_dirty(gpt, vmp->vmp_ptep, true); in vmp_release_inner()
1548 kmem_free(vmp, sizeof (*vmp)); in vmp_release_inner()
1557 vmp_release(vm_page_t *vmp) in vmp_release() argument
1559 vm_client_t *vmc = vmp->vmp_client; in vmp_release()
1564 const bool was_unmapped = vmp_release_inner(vmp, vmc); in vmp_release()
1577 vmp_release_chain(vm_page_t *vmp) in vmp_release_chain() argument
1579 vm_client_t *vmc = vmp->vmp_client; in vmp_release_chain()
1582 ASSERT(vmp != NULL); in vmp_release_chain()
1585 while (vmp != NULL) { in vmp_release_chain()
1586 vm_page_t *next = vmp->vmp_chain; in vmp_release_chain()
1589 ASSERT3P(vmp->vmp_client, ==, vmc); in vmp_release_chain()
1591 if (vmp_release_inner(vmp, vmc)) { in vmp_release_chain()
1594 vmp = next; in vmp_release_chain()