Lines Matching defs:unitp

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