Lines Matching refs:unitp

344 	iommulib_unit_t *unitp;  in iommulib_iommu_register()  local
437 unitp = kmem_zalloc(sizeof (iommulib_unit_t), KM_SLEEP); in iommulib_iommu_register()
443 kmem_free(unitp, sizeof (iommulib_unit_t)); in iommulib_iommu_register()
451 mutex_init(&unitp->ilu_lock, NULL, MUTEX_DEFAULT, NULL); in iommulib_iommu_register()
453 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_register()
454 unitp->ilu_unitid = ++iommulib_unit_ids; in iommulib_iommu_register()
455 unitp->ilu_ref = 0; in iommulib_iommu_register()
457 unitp->ilu_dip = dip; in iommulib_iommu_register()
458 unitp->ilu_ops = ops; in iommulib_iommu_register()
459 unitp->ilu_data = ops->ilops_data; in iommulib_iommu_register()
461 unitp->ilu_next = iommulib_list; in iommulib_iommu_register()
462 iommulib_list = unitp; in iommulib_iommu_register()
463 unitp->ilu_prev = NULL; in iommulib_iommu_register()
464 if (unitp->ilu_next) in iommulib_iommu_register()
465 unitp->ilu_next->ilu_prev = unitp; in iommulib_iommu_register()
472 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_register()
476 *handle = unitp; in iommulib_iommu_register()
482 f, driver, instance, vendor, (void *)ops, (void *)unitp->ilu_data, in iommulib_iommu_register()
483 unitp->ilu_unitid); in iommulib_iommu_register()
495 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_iommu_unregister() local
498 ASSERT(unitp); in iommulib_iommu_unregister()
501 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_unregister()
503 unitid = unitp->ilu_unitid; in iommulib_iommu_unregister()
504 dip = unitp->ilu_dip; in iommulib_iommu_unregister()
508 if (unitp->ilu_ref != 0) { in iommulib_iommu_unregister()
509 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_unregister()
516 unitp->ilu_unitid = 0; in iommulib_iommu_unregister()
517 ASSERT(unitp->ilu_ref == 0); in iommulib_iommu_unregister()
519 if (unitp->ilu_prev == NULL) { in iommulib_iommu_unregister()
520 iommulib_list = unitp->ilu_next; in iommulib_iommu_unregister()
521 unitp->ilu_next->ilu_prev = NULL; in iommulib_iommu_unregister()
523 unitp->ilu_prev->ilu_next = unitp->ilu_next; in iommulib_iommu_unregister()
524 unitp->ilu_next->ilu_prev = unitp->ilu_prev; in iommulib_iommu_unregister()
529 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_unregister()
531 mutex_destroy(&unitp->ilu_lock); in iommulib_iommu_unregister()
532 kmem_free(unitp, sizeof (iommulib_unit_t)); in iommulib_iommu_unregister()
547 iommulib_unit_t *unitp; in iommulib_nex_open() local
568 for (unitp = iommulib_list; unitp; unitp = unitp->ilu_next) { in iommulib_nex_open()
569 if (unitp->ilu_ops->ilops_probe(unitp, rdip) == DDI_SUCCESS) in iommulib_nex_open()
573 if (unitp == NULL) { in iommulib_nex_open()
586 mutex_enter(&unitp->ilu_lock); in iommulib_nex_open()
587 unitp->ilu_nex = DEVI(dip)->devi_iommulib_nex_handle; in iommulib_nex_open()
588 unitp->ilu_ref++; in iommulib_nex_open()
589 DEVI(rdip)->devi_iommulib_handle = unitp; in iommulib_nex_open()
590 mutex_exit(&unitp->ilu_lock); in iommulib_nex_open()
601 iommulib_unit_t *unitp; in iommulib_nex_close() local
610 unitp = DEVI(rdip)->devi_iommulib_handle; in iommulib_nex_close()
613 mutex_enter(&unitp->ilu_lock); in iommulib_nex_close()
615 nexp = (iommulib_nex_t *)unitp->ilu_nex; in iommulib_nex_close()
618 unitid = unitp->ilu_unitid; in iommulib_nex_close()
619 driver = ddi_driver_name(unitp->ilu_dip); in iommulib_nex_close()
620 instance = ddi_get_instance(unitp->ilu_dip); in iommulib_nex_close()
622 unitp->ilu_ref--; in iommulib_nex_close()
623 mutex_exit(&unitp->ilu_lock); in iommulib_nex_close()
644 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_allochdl() local
646 ASSERT(unitp); in iommulib_nexdma_allochdl()
649 return (unitp->ilu_ops->ilops_dma_allochdl(handle, dip, rdip, in iommulib_nexdma_allochdl()
659 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_freehdl() local
661 ASSERT(unitp); in iommulib_nexdma_freehdl()
664 error = unitp->ilu_ops->ilops_dma_freehdl(handle, dip, in iommulib_nexdma_freehdl()
676 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_bindhdl() local
678 ASSERT(unitp); in iommulib_nexdma_bindhdl()
681 return (unitp->ilu_ops->ilops_dma_bindhdl(handle, dip, rdip, dma_handle, in iommulib_nexdma_bindhdl()
690 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_unbindhdl() local
692 ASSERT(unitp); in iommulib_nexdma_unbindhdl()
695 return (unitp->ilu_ops->ilops_dma_unbindhdl(handle, dip, rdip, in iommulib_nexdma_unbindhdl()
705 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_sync() local
707 ASSERT(unitp); in iommulib_nexdma_sync()
710 return (unitp->ilu_ops->ilops_dma_sync(handle, dip, rdip, dma_handle, in iommulib_nexdma_sync()
720 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_win() local
722 ASSERT(unitp); in iommulib_nexdma_win()
725 return (unitp->ilu_ops->ilops_dma_win(handle, dip, rdip, dma_handle, in iommulib_nexdma_win()
735 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_mapobject() local
737 return (unitp->ilu_ops->ilops_dma_mapobject(handle, dip, rdip, in iommulib_nexdma_mapobject()
746 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_unmapobject() local
748 return (unitp->ilu_ops->ilops_dma_unmapobject(handle, dip, rdip, in iommulib_nexdma_unmapobject()
891 iommulib_unit_t *unitp; in iommulib_iommu_getunitid() local
894 unitp = (iommulib_unit_t *)handle; in iommulib_iommu_getunitid()
896 ASSERT(unitp); in iommulib_iommu_getunitid()
899 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_getunitid()
900 unitid = unitp->ilu_unitid; in iommulib_iommu_getunitid()
901 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_getunitid()
912 iommulib_unit_t *unitp; in iommulib_iommu_getdip() local
915 unitp = (iommulib_unit_t *)handle; in iommulib_iommu_getdip()
917 ASSERT(unitp); in iommulib_iommu_getdip()
919 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_getdip()
920 dip = unitp->ilu_dip; in iommulib_iommu_getdip()
923 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_getdip()
931 iommulib_unit_t *unitp; in iommulib_iommu_getops() local
934 unitp = (iommulib_unit_t *)handle; in iommulib_iommu_getops()
936 ASSERT(unitp); in iommulib_iommu_getops()
938 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_getops()
939 ops = unitp->ilu_ops; in iommulib_iommu_getops()
940 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_getops()
950 iommulib_unit_t *unitp; in iommulib_iommu_getdata() local
953 unitp = (iommulib_unit_t *)handle; in iommulib_iommu_getdata()
955 ASSERT(unitp); in iommulib_iommu_getdata()
957 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_getdata()
958 data = unitp->ilu_data; in iommulib_iommu_getdata()
959 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_getdata()