Lines Matching defs:ihp

2451 dvma_prealloc(dev_info_t *rdip, immu_hdl_priv_t *ihp, ddi_dma_attr_t *dma_attr)
2483 ihp->ihp_predvma = dvma;
2484 ihp->ihp_npremapped = 0;
2513 ihp->ihp_preptes[pindex++] = shwp;
2524 dvma_prefree(dev_info_t *rdip, immu_hdl_priv_t *ihp)
2530 if (ihp->ihp_predvma != 0) {
2531 dvma_unmap(domain, ihp->ihp_predvma, IMMU_NPREPTES, rdip);
2533 (void *)(uintptr_t)ihp->ihp_predvma,
2551 immu_hdl_priv_t *ihp, struct ddi_dma_req *dmareq,
2585 dcookies = &ihp->ihp_dcookies[0];
2617 if (npgalloc <= IMMU_NPREPTES && ihp->ihp_predvma != 0) {
2630 sdvma = ihp->ihp_predvma;
2631 ihp->ihp_npremapped = npgalloc;
2632 *ihp->ihp_preptes[0] =
2635 ihp->ihp_npremapped = 0;
2671 if (ihp->ihp_npremapped > 0) {
2672 *ihp->ihp_preptes[npages - 1] =
2706 if (ihp->ihp_npremapped == 0 && npages > 0) {
2718 &ihp->ihp_inv_wait);
2720 ihp->ihp_ndvseg = 1;
2721 ihp->ihp_dvseg[0].dvs_start = sdvma;
2722 ihp->ihp_dvseg[0].dvs_len = dmar_object->dmao_size;
2727 dma_out->dmao_obj.dvma_obj.dv_seg = &ihp->ihp_dvseg[0];
3000 immu_hdl_priv_t *ihp;
3002 ihp = buf;
3003 immu_init_inv_wait(&ihp->ihp_inv_wait, "dmahandle", B_FALSE);
3059 immu_hdl_priv_t *ihp;
3067 ihp = kmem_cache_alloc(immu->immu_hdl_cache,
3069 if (ihp == NULL) {
3076 dvma_prealloc(rdip, ihp, attr);
3078 ihp->ihp_npremapped = 0;
3079 ihp->ihp_predvma = 0;
3082 ihp);
3092 immu_hdl_priv_t *ihp;
3094 ihp = iommulib_iommu_dmahdl_getprivate(dip, rdip, dma_handle);
3095 if (ihp != NULL) {
3097 dvma_prefree(rdip, ihp);
3098 kmem_cache_free(IMMU_DEVI(rdip)->imd_immu->immu_hdl_cache, ihp);
3113 immu_hdl_priv_t *ihp;
3119 ihp = iommulib_iommu_dmahdl_getprivate(dip, rdip, dma_handle);
3120 immu_flush_wait(IMMU_DEVI(rdip)->imd_immu, &ihp->ihp_inv_wait);
3161 immu_hdl_priv_t *ihp;
3163 ihp = iommulib_iommu_dmahdl_getprivate(dip, rdip, dma_handle);
3165 return (immu_map_dvmaseg(rdip, dma_handle, ihp, dmareq, dmao));
3173 immu_hdl_priv_t *ihp;
3175 ihp = iommulib_iommu_dmahdl_getprivate(dip, rdip, dma_handle);
3176 if (ihp->ihp_npremapped > 0)