Lines Matching refs:pgtable
423 pgtable_t *pgtable; in pgtable_ctor() local
430 pgtable = (pgtable_t *)buf; in pgtable_ctor()
440 dmafp, NULL, &pgtable->hwpg_dmahdl) != DDI_SUCCESS) { in pgtable_ctor()
449 if (ddi_dma_mem_alloc(pgtable->hwpg_dmahdl, IMMU_PAGESIZE, in pgtable_ctor()
452 &pgtable->hwpg_memhdl) != DDI_SUCCESS) { in pgtable_ctor()
453 ddi_dma_free_handle(&pgtable->hwpg_dmahdl); in pgtable_ctor()
463 ddi_dma_mem_free(&pgtable->hwpg_memhdl); in pgtable_ctor()
464 ddi_dma_free_handle(&pgtable->hwpg_dmahdl); in pgtable_ctor()
469 pgtable->hwpg_paddr = pfn_to_pa(hat_getpfnum(kas.a_hat, vaddr)); in pgtable_ctor()
470 pgtable->hwpg_vaddr = vaddr; in pgtable_ctor()
471 pgtable->swpg_next_array = next; in pgtable_ctor()
473 rw_init(&(pgtable->swpg_rwlock), NULL, RW_DEFAULT, NULL); in pgtable_ctor()
482 pgtable_t *pgtable; in pgtable_dtor() local
484 pgtable = (pgtable_t *)buf; in pgtable_dtor()
487 rw_destroy(&(pgtable->swpg_rwlock)); in pgtable_dtor()
489 ddi_dma_mem_free(&pgtable->hwpg_memhdl); in pgtable_dtor()
490 ddi_dma_free_handle(&pgtable->hwpg_dmahdl); in pgtable_dtor()
491 kmem_free(pgtable->swpg_next_array, IMMU_PAGESIZE); in pgtable_dtor()
509 pgtable_t *pgtable; in pgtable_alloc() local
514 pgtable = kmem_cache_alloc(immu->immu_pgtable_cache, kmflags); in pgtable_alloc()
515 if (pgtable == NULL) { in pgtable_alloc()
518 return (pgtable); in pgtable_alloc()
522 pgtable_zero(pgtable_t *pgtable) in pgtable_zero() argument
524 bzero(pgtable->hwpg_vaddr, IMMU_PAGESIZE); in pgtable_zero()
525 bzero(pgtable->swpg_next_array, IMMU_PAGESIZE); in pgtable_zero()
529 pgtable_free(immu_t *immu, pgtable_t *pgtable) in pgtable_free() argument
531 kmem_cache_free(immu->immu_pgtable_cache, pgtable); in pgtable_free()
1852 pgtable_t *pgtable; in PTE_clear_all() local
1857 pgtable = xlate->xlt_pgtable; in PTE_clear_all()
1868 shwp = (hw_pdte_t *)(pgtable->hwpg_vaddr) + idx; in PTE_clear_all()
1911 pgtable_t *pgtable; in PDE_lookup() local
1924 pgtable = xlate->xlt_pgtable; in PDE_lookup()
1931 rw_enter(&(pgtable->swpg_rwlock), RW_READER); in PDE_lookup()
1937 next = *(pgtable->swpg_next_array + idx); in PDE_lookup()
1939 rw_exit(&(pgtable->swpg_rwlock)); in PDE_lookup()
2103 pgtable_t *pgtable; in PTE_set_all() local
2109 pgtable = xlate->xlt_pgtable; in PTE_set_all()
2120 shwp = (hw_pdte_t *)(pgtable->hwpg_vaddr) + idx; in PTE_set_all()
2246 pgtable_t *pgtable; in PDE_set_all() local
2262 pgtable = xlate->xlt_pgtable; in PDE_set_all()
2265 rw_enter(&(pgtable->swpg_rwlock), RW_READER); in PDE_set_all()
2268 hwp = (hw_pdte_t *)(pgtable->hwpg_vaddr) + idx; in PDE_set_all()
2269 next = (pgtable->swpg_next_array)[idx]; in PDE_set_all()
2291 rw_tryupgrade(&(pgtable->swpg_rwlock)) == 0) { in PDE_set_all()
2292 rw_exit(&(pgtable->swpg_rwlock)); in PDE_set_all()
2293 rw_enter(&(pgtable->swpg_rwlock), RW_WRITER); in PDE_set_all()
2299 (pgtable->swpg_next_array)[idx] = next; in PDE_set_all()
2303 rw_downgrade(&(pgtable->swpg_rwlock)); in PDE_set_all()
2329 rw_exit(&(pgtable->swpg_rwlock)); in PDE_set_all()