Lines Matching refs:irport

172 static void stmf_create_kstat_rport(stmf_i_remote_port_t *irport);
173 static void stmf_destroy_kstat_rport(stmf_i_remote_port_t *irport);
176 static void stmf_irport_destroy(stmf_i_remote_port_t *irport);
181 static void stmf_irport_deregister(stmf_i_remote_port_t *irport);
326 stmf_i_remote_port_t *irport; in _fini() local
360 while ((irport = avl_destroy_nodes(&stmf_state.stmf_irportlist, in _fini()
362 stmf_irport_destroy(irport); in _fini()
2794 stmf_i_remote_port_t *irport; in stmf_update_kstat_rport_io() local
2798 irport = iss->iss_irport; in stmf_update_kstat_rport_io()
2799 if (irport->irport_kstat_io != NULL) { in stmf_update_kstat_rport_io()
2800 kip = KSTAT_IO_PTR(irport->irport_kstat_io); in stmf_update_kstat_rport_io()
2801 mutex_enter(irport->irport_kstat_io->ks_lock); in stmf_update_kstat_rport_io()
2803 mutex_exit(irport->irport_kstat_io->ks_lock); in stmf_update_kstat_rport_io()
2812 stmf_i_remote_port_t *irport; in stmf_update_kstat_rport_estat() local
2819 irport = iss->iss_irport; in stmf_update_kstat_rport_estat()
2821 if (irport->irport_kstat_estat == NULL) in stmf_update_kstat_rport_estat()
2825 irport->irport_kstat_estat); in stmf_update_kstat_rport_estat()
2827 mutex_enter(irport->irport_kstat_estat->ks_lock); in stmf_update_kstat_rport_estat()
2830 n = atomic_dec_32_nv(&irport->irport_nread_tasks); in stmf_update_kstat_rport_estat()
2832 n = atomic_dec_32_nv(&irport->irport_nwrite_tasks); in stmf_update_kstat_rport_estat()
2837 &irport->irport_rdstart_timestamp, in stmf_update_kstat_rport_estat()
2838 &irport->irport_rddone_timestamp, itask); in stmf_update_kstat_rport_estat()
2845 &irport->irport_wrstart_timestamp, in stmf_update_kstat_rport_estat()
2846 &irport->irport_wrdone_timestamp, itask); in stmf_update_kstat_rport_estat()
2853 irport->irport_rdstart_timestamp = LLONG_MAX; in stmf_update_kstat_rport_estat()
2854 irport->irport_rddone_timestamp = 0; in stmf_update_kstat_rport_estat()
2856 irport->irport_wrstart_timestamp = LLONG_MAX; in stmf_update_kstat_rport_estat()
2857 irport->irport_wrdone_timestamp = 0; in stmf_update_kstat_rport_estat()
2861 mutex_exit(irport->irport_kstat_estat->ks_lock); in stmf_update_kstat_rport_estat()
3513 stmf_i_remote_port_t *irport; in stmf_irport_create() local
3521 alloc_len = sizeof (*irport) + sizeof (scsi_devid_desc_t) + in stmf_irport_create()
3523 irport = kmem_zalloc(alloc_len, KM_NOSLEEP); in stmf_irport_create()
3524 if (irport == NULL) { in stmf_irport_create()
3528 irport->irport_instance = in stmf_irport_create()
3530 if (irport->irport_instance == -1) { in stmf_irport_create()
3531 kmem_free(irport, alloc_len); in stmf_irport_create()
3535 irport->irport_id = in stmf_irport_create()
3536 (struct scsi_devid_desc *)(irport + 1); /* Ptr. Arith. */ in stmf_irport_create()
3537 bcopy(rport_devid, irport->irport_id, in stmf_irport_create()
3539 irport->irport_refcnt = 1; in stmf_irport_create()
3540 mutex_init(&irport->irport_mutex, NULL, MUTEX_DEFAULT, NULL); in stmf_irport_create()
3541 irport->irport_rdstart_timestamp = LLONG_MAX; in stmf_irport_create()
3542 irport->irport_wrstart_timestamp = LLONG_MAX; in stmf_irport_create()
3544 return (irport); in stmf_irport_create()
3548 stmf_irport_destroy(stmf_i_remote_port_t *irport) in stmf_irport_destroy() argument
3550 stmf_destroy_kstat_rport(irport); in stmf_irport_destroy()
3551 id_free(stmf_state.stmf_irport_inst_space, irport->irport_instance); in stmf_irport_destroy()
3552 mutex_destroy(&irport->irport_mutex); in stmf_irport_destroy()
3553 kmem_free(irport, sizeof (*irport) + sizeof (scsi_devid_desc_t) + in stmf_irport_destroy()
3554 irport->irport_id->ident_length - 1); in stmf_irport_destroy()
3558 stmf_create_kstat_rport(stmf_i_remote_port_t *irport) in stmf_create_kstat_rport() argument
3560 scsi_devid_desc_t *id = irport->irport_id; in stmf_create_kstat_rport()
3571 (uintptr_t)irport); in stmf_create_kstat_rport()
3572 irport->irport_kstat_info = kstat_create(STMF_MODULE_NAME, 0, in stmf_create_kstat_rport()
3576 if (irport->irport_kstat_info == NULL) { in stmf_create_kstat_rport()
3581 irport->irport_kstat_info->ks_data = ks_info; in stmf_create_kstat_rport()
3582 irport->irport_kstat_info->ks_private = irport; in stmf_create_kstat_rport()
3583 irport->irport_kstat_info->ks_update = stmf_kstat_rport_update; in stmf_create_kstat_rport()
3586 kstat_delete(irport->irport_kstat_info); in stmf_create_kstat_rport()
3587 irport->irport_kstat_info = NULL; in stmf_create_kstat_rport()
3600 protocol_ident[irport->irport_id->protocol_id]); in stmf_create_kstat_rport()
3601 irport->irport_kstat_info->ks_lock = &irport->irport_mutex; in stmf_create_kstat_rport()
3602 irport->irport_info_dirty = B_TRUE; in stmf_create_kstat_rport()
3603 kstat_install(irport->irport_kstat_info); in stmf_create_kstat_rport()
3606 (uintptr_t)irport); in stmf_create_kstat_rport()
3607 irport->irport_kstat_io = kstat_create(STMF_MODULE_NAME, 0, ks_nm, in stmf_create_kstat_rport()
3609 if (irport->irport_kstat_io == NULL) in stmf_create_kstat_rport()
3612 irport->irport_kstat_io->ks_lock = &irport->irport_mutex; in stmf_create_kstat_rport()
3613 kstat_install(irport->irport_kstat_io); in stmf_create_kstat_rport()
3616 (uintptr_t)irport); in stmf_create_kstat_rport()
3617 irport->irport_kstat_estat = kstat_create(STMF_MODULE_NAME, 0, ks_nm, in stmf_create_kstat_rport()
3620 if (irport->irport_kstat_estat == NULL) in stmf_create_kstat_rport()
3624 irport->irport_kstat_estat); in stmf_create_kstat_rport()
3633 irport->irport_kstat_estat->ks_lock = &irport->irport_mutex; in stmf_create_kstat_rport()
3634 kstat_install(irport->irport_kstat_estat); in stmf_create_kstat_rport()
3646 stmf_destroy_kstat_rport(stmf_i_remote_port_t *irport) in stmf_destroy_kstat_rport() argument
3648 if (irport->irport_kstat_io != NULL) { in stmf_destroy_kstat_rport()
3649 kstat_delete(irport->irport_kstat_io); in stmf_destroy_kstat_rport()
3651 if (irport->irport_kstat_estat != NULL) { in stmf_destroy_kstat_rport()
3652 kstat_delete(irport->irport_kstat_estat); in stmf_destroy_kstat_rport()
3654 if (irport->irport_kstat_info != NULL) { in stmf_destroy_kstat_rport()
3661 irport->irport_kstat_info); in stmf_destroy_kstat_rport()
3662 kstat_delete(irport->irport_kstat_info); in stmf_destroy_kstat_rport()
3679 stmf_i_remote_port_t *irport; in stmf_irport_register() local
3687 if ((irport = stmf_irport_lookup_locked(rport_devid)) != NULL) { in stmf_irport_register()
3689 return (irport); in stmf_irport_register()
3692 irport = stmf_irport_create(rport_devid); in stmf_irport_register()
3693 if (irport == NULL) { in stmf_irport_register()
3698 stmf_create_kstat_rport(irport); in stmf_irport_register()
3699 avl_add(&stmf_state.stmf_irportlist, irport); in stmf_irport_register()
3702 return (irport); in stmf_irport_register()
3708 stmf_i_remote_port_t *irport; in stmf_irport_lookup_locked() local
3713 irport = avl_find(&stmf_state.stmf_irportlist, &tmp_irport, NULL); in stmf_irport_lookup_locked()
3714 if (irport != NULL) { in stmf_irport_lookup_locked()
3715 mutex_enter(&irport->irport_mutex); in stmf_irport_lookup_locked()
3716 irport->irport_refcnt++; in stmf_irport_lookup_locked()
3717 mutex_exit(&irport->irport_mutex); in stmf_irport_lookup_locked()
3720 return (irport); in stmf_irport_lookup_locked()
3724 stmf_irport_deregister(stmf_i_remote_port_t *irport) in stmf_irport_deregister() argument
3733 mutex_enter(&irport->irport_mutex); in stmf_irport_deregister()
3734 irport->irport_refcnt--; in stmf_irport_deregister()
3735 mutex_exit(&irport->irport_mutex); in stmf_irport_deregister()
3827 stmf_i_remote_port_t *irport = iss->iss_irport; in stmf_add_rport_info() local
3834 mutex_enter(irport->irport_kstat_info->ks_lock); in stmf_add_rport_info()
3836 knp = KSTAT_NAMED_PTR(irport->irport_kstat_info); in stmf_add_rport_info()
3845 mutex_exit(irport->irport_kstat_info->ks_lock); in stmf_add_rport_info()
3850 irport->irport_info_dirty = B_TRUE; in stmf_add_rport_info()
3853 mutex_exit(irport->irport_kstat_info->ks_lock); in stmf_add_rport_info()
3863 stmf_i_remote_port_t *irport = iss->iss_irport; in stmf_remove_rport_info() local
3869 mutex_enter(irport->irport_kstat_info->ks_lock); in stmf_remove_rport_info()
3870 knp = KSTAT_NAMED_PTR(irport->irport_kstat_info); in stmf_remove_rport_info()
3877 mutex_exit(irport->irport_kstat_info->ks_lock); in stmf_remove_rport_info()
3890 irport->irport_info_dirty = B_TRUE; in stmf_remove_rport_info()
3891 mutex_exit(irport->irport_kstat_info->ks_lock); in stmf_remove_rport_info()
3898 stmf_i_remote_port_t *irport = ksp->ks_private; in stmf_kstat_rport_update() local
3907 if (!irport->irport_info_dirty) in stmf_kstat_rport_update()
3920 irport->irport_info_dirty = B_FALSE; in stmf_kstat_rport_update()
7442 stmf_i_remote_port_t *irport = iss->iss_irport; in stmf_itl_task_start() local
7455 if (irport->irport_kstat_estat != NULL) { in stmf_itl_task_start()
7457 atomic_inc_32(&irport->irport_nread_tasks); in stmf_itl_task_start()
7459 atomic_inc_32(&irport->irport_nwrite_tasks); in stmf_itl_task_start()