Lines Matching refs:unitp

346 	iommulib_unit_t *unitp;  in iommulib_iommu_register()  local
439 unitp = kmem_zalloc(sizeof (iommulib_unit_t), KM_SLEEP); in iommulib_iommu_register()
445 kmem_free(unitp, sizeof (iommulib_unit_t)); in iommulib_iommu_register()
453 mutex_init(&unitp->ilu_lock, NULL, MUTEX_DEFAULT, NULL); in iommulib_iommu_register()
455 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_register()
456 unitp->ilu_unitid = ++iommulib_unit_ids; in iommulib_iommu_register()
457 unitp->ilu_ref = 0; in iommulib_iommu_register()
459 unitp->ilu_dip = dip; in iommulib_iommu_register()
460 unitp->ilu_ops = ops; in iommulib_iommu_register()
461 unitp->ilu_data = ops->ilops_data; in iommulib_iommu_register()
463 unitp->ilu_next = iommulib_list; in iommulib_iommu_register()
464 iommulib_list = unitp; in iommulib_iommu_register()
465 unitp->ilu_prev = NULL; in iommulib_iommu_register()
466 if (unitp->ilu_next) in iommulib_iommu_register()
467 unitp->ilu_next->ilu_prev = unitp; in iommulib_iommu_register()
474 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_register()
478 *handle = unitp; in iommulib_iommu_register()
484 f, driver, instance, vendor, (void *)ops, (void *)unitp->ilu_data, in iommulib_iommu_register()
485 unitp->ilu_unitid); in iommulib_iommu_register()
497 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_iommu_unregister() local
500 ASSERT(unitp); in iommulib_iommu_unregister()
503 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_unregister()
505 unitid = unitp->ilu_unitid; in iommulib_iommu_unregister()
506 dip = unitp->ilu_dip; in iommulib_iommu_unregister()
510 if (unitp->ilu_ref != 0) { in iommulib_iommu_unregister()
511 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_unregister()
518 unitp->ilu_unitid = 0; in iommulib_iommu_unregister()
519 ASSERT(unitp->ilu_ref == 0); in iommulib_iommu_unregister()
521 if (unitp->ilu_prev == NULL) { in iommulib_iommu_unregister()
522 iommulib_list = unitp->ilu_next; in iommulib_iommu_unregister()
523 unitp->ilu_next->ilu_prev = NULL; in iommulib_iommu_unregister()
525 unitp->ilu_prev->ilu_next = unitp->ilu_next; in iommulib_iommu_unregister()
526 unitp->ilu_next->ilu_prev = unitp->ilu_prev; in iommulib_iommu_unregister()
531 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_unregister()
533 mutex_destroy(&unitp->ilu_lock); in iommulib_iommu_unregister()
534 kmem_free(unitp, sizeof (iommulib_unit_t)); in iommulib_iommu_unregister()
549 iommulib_unit_t *unitp; in iommulib_nex_open() local
570 for (unitp = iommulib_list; unitp; unitp = unitp->ilu_next) { in iommulib_nex_open()
571 if (unitp->ilu_ops->ilops_probe(unitp, rdip) == DDI_SUCCESS) in iommulib_nex_open()
575 if (unitp == NULL) { in iommulib_nex_open()
588 mutex_enter(&unitp->ilu_lock); in iommulib_nex_open()
589 unitp->ilu_nex = DEVI(dip)->devi_iommulib_nex_handle; in iommulib_nex_open()
590 unitp->ilu_ref++; in iommulib_nex_open()
591 DEVI(rdip)->devi_iommulib_handle = unitp; in iommulib_nex_open()
592 mutex_exit(&unitp->ilu_lock); in iommulib_nex_open()
603 iommulib_unit_t *unitp; in iommulib_nex_close() local
612 unitp = DEVI(rdip)->devi_iommulib_handle; in iommulib_nex_close()
615 mutex_enter(&unitp->ilu_lock); in iommulib_nex_close()
617 nexp = (iommulib_nex_t *)unitp->ilu_nex; in iommulib_nex_close()
620 unitid = unitp->ilu_unitid; in iommulib_nex_close()
621 driver = ddi_driver_name(unitp->ilu_dip); in iommulib_nex_close()
622 instance = ddi_get_instance(unitp->ilu_dip); in iommulib_nex_close()
624 unitp->ilu_ref--; in iommulib_nex_close()
625 mutex_exit(&unitp->ilu_lock); in iommulib_nex_close()
646 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_allochdl() local
648 ASSERT(unitp); in iommulib_nexdma_allochdl()
651 return (unitp->ilu_ops->ilops_dma_allochdl(handle, dip, rdip, in iommulib_nexdma_allochdl()
661 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_freehdl() local
663 ASSERT(unitp); in iommulib_nexdma_freehdl()
666 error = unitp->ilu_ops->ilops_dma_freehdl(handle, dip, in iommulib_nexdma_freehdl()
678 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_bindhdl() local
680 ASSERT(unitp); in iommulib_nexdma_bindhdl()
683 return (unitp->ilu_ops->ilops_dma_bindhdl(handle, dip, rdip, dma_handle, in iommulib_nexdma_bindhdl()
692 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_unbindhdl() local
694 ASSERT(unitp); in iommulib_nexdma_unbindhdl()
697 return (unitp->ilu_ops->ilops_dma_unbindhdl(handle, dip, rdip, in iommulib_nexdma_unbindhdl()
707 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_sync() local
709 ASSERT(unitp); in iommulib_nexdma_sync()
712 return (unitp->ilu_ops->ilops_dma_sync(handle, dip, rdip, dma_handle, in iommulib_nexdma_sync()
722 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_win() local
724 ASSERT(unitp); in iommulib_nexdma_win()
727 return (unitp->ilu_ops->ilops_dma_win(handle, dip, rdip, dma_handle, in iommulib_nexdma_win()
737 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_mapobject() local
739 return (unitp->ilu_ops->ilops_dma_mapobject(handle, dip, rdip, in iommulib_nexdma_mapobject()
748 iommulib_unit_t *unitp = (iommulib_unit_t *)handle; in iommulib_nexdma_unmapobject() local
750 return (unitp->ilu_ops->ilops_dma_unmapobject(handle, dip, rdip, in iommulib_nexdma_unmapobject()
893 iommulib_unit_t *unitp; in iommulib_iommu_getunitid() local
896 unitp = (iommulib_unit_t *)handle; in iommulib_iommu_getunitid()
898 ASSERT(unitp); in iommulib_iommu_getunitid()
901 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_getunitid()
902 unitid = unitp->ilu_unitid; in iommulib_iommu_getunitid()
903 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_getunitid()
914 iommulib_unit_t *unitp; in iommulib_iommu_getdip() local
917 unitp = (iommulib_unit_t *)handle; in iommulib_iommu_getdip()
919 ASSERT(unitp); in iommulib_iommu_getdip()
921 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_getdip()
922 dip = unitp->ilu_dip; in iommulib_iommu_getdip()
925 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_getdip()
933 iommulib_unit_t *unitp; in iommulib_iommu_getops() local
936 unitp = (iommulib_unit_t *)handle; in iommulib_iommu_getops()
938 ASSERT(unitp); in iommulib_iommu_getops()
940 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_getops()
941 ops = unitp->ilu_ops; in iommulib_iommu_getops()
942 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_getops()
952 iommulib_unit_t *unitp; in iommulib_iommu_getdata() local
955 unitp = (iommulib_unit_t *)handle; in iommulib_iommu_getdata()
957 ASSERT(unitp); in iommulib_iommu_getdata()
959 mutex_enter(&unitp->ilu_lock); in iommulib_iommu_getdata()
960 data = unitp->ilu_data; in iommulib_iommu_getdata()
961 mutex_exit(&unitp->ilu_lock); in iommulib_iommu_getdata()