Lines Matching refs:pgtable
421 pgtable_t *pgtable; in pgtable_ctor() local
428 pgtable = (pgtable_t *)buf; in pgtable_ctor()
438 dmafp, NULL, &pgtable->hwpg_dmahdl) != DDI_SUCCESS) { in pgtable_ctor()
447 if (ddi_dma_mem_alloc(pgtable->hwpg_dmahdl, IMMU_PAGESIZE, in pgtable_ctor()
450 &pgtable->hwpg_memhdl) != DDI_SUCCESS) { in pgtable_ctor()
451 ddi_dma_free_handle(&pgtable->hwpg_dmahdl); in pgtable_ctor()
461 ddi_dma_mem_free(&pgtable->hwpg_memhdl); in pgtable_ctor()
462 ddi_dma_free_handle(&pgtable->hwpg_dmahdl); in pgtable_ctor()
467 pgtable->hwpg_paddr = pfn_to_pa(hat_getpfnum(kas.a_hat, vaddr)); in pgtable_ctor()
468 pgtable->hwpg_vaddr = vaddr; in pgtable_ctor()
469 pgtable->swpg_next_array = next; in pgtable_ctor()
471 rw_init(&(pgtable->swpg_rwlock), NULL, RW_DEFAULT, NULL); in pgtable_ctor()
480 pgtable_t *pgtable; in pgtable_dtor() local
482 pgtable = (pgtable_t *)buf; in pgtable_dtor()
485 rw_destroy(&(pgtable->swpg_rwlock)); in pgtable_dtor()
487 ddi_dma_mem_free(&pgtable->hwpg_memhdl); in pgtable_dtor()
488 ddi_dma_free_handle(&pgtable->hwpg_dmahdl); in pgtable_dtor()
489 kmem_free(pgtable->swpg_next_array, IMMU_PAGESIZE); in pgtable_dtor()
507 pgtable_t *pgtable; in pgtable_alloc() local
512 pgtable = kmem_cache_alloc(immu->immu_pgtable_cache, kmflags); in pgtable_alloc()
513 if (pgtable == NULL) { in pgtable_alloc()
516 return (pgtable); in pgtable_alloc()
520 pgtable_zero(pgtable_t *pgtable) in pgtable_zero() argument
522 bzero(pgtable->hwpg_vaddr, IMMU_PAGESIZE); in pgtable_zero()
523 bzero(pgtable->swpg_next_array, IMMU_PAGESIZE); in pgtable_zero()
527 pgtable_free(immu_t *immu, pgtable_t *pgtable) in pgtable_free() argument
529 kmem_cache_free(immu->immu_pgtable_cache, pgtable); in pgtable_free()
1851 pgtable_t *pgtable; in PTE_clear_all() local
1856 pgtable = xlate->xlt_pgtable; in PTE_clear_all()
1867 shwp = (hw_pdte_t *)(pgtable->hwpg_vaddr) + idx; in PTE_clear_all()
1910 pgtable_t *pgtable; in PDE_lookup() local
1923 pgtable = xlate->xlt_pgtable; in PDE_lookup()
1930 rw_enter(&(pgtable->swpg_rwlock), RW_READER); in PDE_lookup()
1936 next = *(pgtable->swpg_next_array + idx); in PDE_lookup()
1938 rw_exit(&(pgtable->swpg_rwlock)); in PDE_lookup()
2102 pgtable_t *pgtable; in PTE_set_all() local
2108 pgtable = xlate->xlt_pgtable; in PTE_set_all()
2119 shwp = (hw_pdte_t *)(pgtable->hwpg_vaddr) + idx; in PTE_set_all()
2244 pgtable_t *pgtable; in PDE_set_all() local
2260 pgtable = xlate->xlt_pgtable; in PDE_set_all()
2263 rw_enter(&(pgtable->swpg_rwlock), RW_READER); in PDE_set_all()
2266 hwp = (hw_pdte_t *)(pgtable->hwpg_vaddr) + idx; in PDE_set_all()
2267 next = (pgtable->swpg_next_array)[idx]; in PDE_set_all()
2289 rw_tryupgrade(&(pgtable->swpg_rwlock)) == 0) { in PDE_set_all()
2290 rw_exit(&(pgtable->swpg_rwlock)); in PDE_set_all()
2291 rw_enter(&(pgtable->swpg_rwlock), RW_WRITER); in PDE_set_all()
2297 (pgtable->swpg_next_array)[idx] = next; in PDE_set_all()
2301 rw_downgrade(&(pgtable->swpg_rwlock)); in PDE_set_all()
2327 rw_exit(&(pgtable->swpg_rwlock)); in PDE_set_all()