Lines Matching refs:ilport

537 	stmf_i_local_port_t *ilport;  in stmf_ioctl()  local
643 ilport = stmf_state.stmf_ilportlist; in stmf_ioctl()
647 id = (uint8_t *)ilport->ilport_lport->lport_id; in stmf_ioctl()
649 ilport = ilport->ilport_next; in stmf_ioctl()
662 for (ilport = stmf_state.stmf_ilportlist; ilport; ilport = in stmf_ioctl()
663 ilport->ilport_next) { in stmf_ioctl()
665 id = (uint8_t *)ilport->ilport_lport->lport_id; in stmf_ioctl()
671 if (ilport == NULL) { in stmf_ioctl()
676 iocd->stmf_obuf_max_nentries = ilport->ilport_nsessions; in stmf_ioctl()
677 n = min(ilport->ilport_nsessions, in stmf_ioctl()
680 iss = ilport->ilport_ss_list; in stmf_ioctl()
745 for (ilport = stmf_state.stmf_ilportlist; ilport; in stmf_ioctl()
746 ilport = ilport->ilport_next) { in stmf_ioctl()
748 id = (uint8_t *)ilport->ilport_lport->lport_id; in stmf_ioctl()
753 if (ilport == NULL) { in stmf_ioctl()
759 bcopy(ilport->ilport_lport->lport_id, lportp->tgt_id, in stmf_ioctl()
760 ilport->ilport_lport->lport_id->ident_length + 4); in stmf_ioctl()
761 lportp->tgt_state = ilport->ilport_state & 0x0f; in stmf_ioctl()
764 ilport->ilport_lport->lport_pp->pp_name, 255); in stmf_ioctl()
766 if (ilport->ilport_lport->lport_alias) { in stmf_ioctl()
768 ilport->ilport_lport->lport_alias, 255); in stmf_ioctl()
895 for (ilport = stmf_state.stmf_ilportlist; ilport; in stmf_ioctl()
896 ilport = ilport->ilport_next) { in stmf_ioctl()
898 id = (uint8_t *)ilport->ilport_lport->lport_id; in stmf_ioctl()
904 if (ilport == NULL) { in stmf_ioctl()
913 ctl_ret = stmf_ctl(cmd, (void *)ilport->ilport_lport, &ssi); in stmf_ioctl()
1408 stmf_i_local_port_t *ilport; in stmf_get_service_state() local
1416 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL; in stmf_get_service_state()
1417 ilport = ilport->ilport_next) { in stmf_get_service_state()
1418 if (ilport->ilport_state == STMF_STATE_OFFLINE) in stmf_get_service_state()
1420 else if (ilport->ilport_state == STMF_STATE_ONLINE) in stmf_get_service_state()
1422 else if (ilport->ilport_state == STMF_STATE_ONLINING) in stmf_get_service_state()
1424 else if (ilport->ilport_state == STMF_STATE_OFFLINING) in stmf_get_service_state()
1457 stmf_i_local_port_t *ilport; in stmf_set_stmf_state() local
1522 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL; in stmf_set_stmf_state()
1523 ilport = ilport->ilport_next) { in stmf_set_stmf_state()
1528 ilport->ilport_lport, &ssi); in stmf_set_stmf_state()
1555 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL; in stmf_set_stmf_state()
1556 ilport = ilport->ilport_next) { in stmf_set_stmf_state()
1557 if (ilport->ilport_state != STMF_STATE_ONLINE) in stmf_set_stmf_state()
1560 ilport->ilport_lport, &ssi); in stmf_set_stmf_state()
1733 stmf_i_local_port_t *ilport; in stmf_ic_rx_status() local
1745 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL; in stmf_ic_rx_status()
1746 ilport = ilport->ilport_next) { in stmf_ic_rx_status()
1747 if (msg->ics_msgid == ilport->ilport_reg_msgid) { in stmf_ic_rx_status()
1748 ilport->ilport_proxy_registered = 1; in stmf_ic_rx_status()
1878 stmf_i_local_port_t *ilport = in stmf_proxy_scsi_cmd() local
1889 if (ilport->ilport_proxy_registered == 0) { in stmf_proxy_scsi_cmd()
2064 stmf_i_local_port_t *ilport; in stmf_set_alua_state() local
2089 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL; in stmf_set_alua_state()
2090 ilport = ilport->ilport_next) { in stmf_set_alua_state()
2092 if (ilport->ilport_standby == 1 || in stmf_set_alua_state()
2093 ilport->ilport_alua == 0) { in stmf_set_alua_state()
2097 ilport->ilport_rtpid = in stmf_set_alua_state()
2100 lport = ilport->ilport_lport; in stmf_set_alua_state()
2102 lport->lport_id, ilport->ilport_rtpid, in stmf_set_alua_state()
2107 ilport->ilport_reg_msgid = in stmf_set_alua_state()
2113 ilport->ilport_kstat_tgt_name); in stmf_set_alua_state()
2278 stmf_i_local_port_t *ilport; in stmf_lookup_lport() local
2281 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL; in stmf_lookup_lport()
2282 ilport = ilport->ilport_next) { in stmf_lookup_lport()
2283 if (ilport->ilport_lport == lport) in stmf_lookup_lport()
2284 return (ilport); in stmf_lookup_lport()
2957 stmf_create_kstat_lport(stmf_i_local_port_t *ilport) in stmf_create_kstat_lport() argument
2972 (void) sprintf(ks_nm, "stmf_tgt_%"PRIxPTR"", (uintptr_t)ilport); in stmf_create_kstat_lport()
2973 if ((ilport->ilport_kstat_info = kstat_create(STMF_MODULE_NAME, in stmf_create_kstat_lport()
2982 ilport->ilport_kstat_info->ks_data_size = STMF_KSTAT_TGT_SZ; in stmf_create_kstat_lport()
2983 ilport->ilport_kstat_info->ks_data = ks_tgt; in stmf_create_kstat_lport()
2993 len = ilport->ilport_lport->lport_id->ident_length; in stmf_create_kstat_lport()
2994 bcopy(ilport->ilport_lport->lport_id->ident, in stmf_create_kstat_lport()
2995 ilport->ilport_kstat_tgt_name, len); in stmf_create_kstat_lport()
2996 ilport->ilport_kstat_tgt_name[len + 1] = '\0'; in stmf_create_kstat_lport()
2998 (const char *)ilport->ilport_kstat_tgt_name); in stmf_create_kstat_lport()
3000 (const char *)ilport->ilport_lport->lport_alias); in stmf_create_kstat_lport()
3002 if ((id = ilport->ilport_lport->lport_id->protocol_id) > PROTOCOL_ANY) { in stmf_create_kstat_lport()
3007 kstat_install(ilport->ilport_kstat_info); in stmf_create_kstat_lport()
3011 (void) sprintf(ks_nm, "stmf_tgt_io_%"PRIxPTR"", (uintptr_t)ilport); in stmf_create_kstat_lport()
3012 if ((ilport->ilport_kstat_io = kstat_create(STMF_MODULE_NAME, 0, in stmf_create_kstat_lport()
3017 mutex_init(&ilport->ilport_kstat_lock, NULL, MUTEX_DRIVER, 0); in stmf_create_kstat_lport()
3018 ilport->ilport_kstat_io->ks_lock = &ilport->ilport_kstat_lock; in stmf_create_kstat_lport()
3019 kstat_install(ilport->ilport_kstat_io); in stmf_create_kstat_lport()
3293 stmf_i_local_port_t *ilport = in stmf_set_port_standby() local
3295 ilport->ilport_rtpid = rtpid; in stmf_set_port_standby()
3296 ilport->ilport_standby = 1; in stmf_set_port_standby()
3302 stmf_i_local_port_t *ilport = in stmf_set_port_alua() local
3304 ilport->ilport_alua = 1; in stmf_set_port_alua()
3310 stmf_i_local_port_t *ilport; in stmf_register_local_port() local
3319 ilport = (stmf_i_local_port_t *)lport->lport_stmf_private; in stmf_register_local_port()
3320 rw_init(&ilport->ilport_lock, NULL, RW_DRIVER, NULL); in stmf_register_local_port()
3322 ilport->ilport_instance = in stmf_register_local_port()
3324 if (ilport->ilport_instance == -1) { in stmf_register_local_port()
3328 ilport->ilport_next = stmf_state.stmf_ilportlist; in stmf_register_local_port()
3329 ilport->ilport_prev = NULL; in stmf_register_local_port()
3330 if (ilport->ilport_next) in stmf_register_local_port()
3331 ilport->ilport_next->ilport_prev = ilport; in stmf_register_local_port()
3332 stmf_state.stmf_ilportlist = ilport; in stmf_register_local_port()
3338 ilport->ilport_tg = in stmf_register_local_port()
3347 if (ilport->ilport_standby == 0) { in stmf_register_local_port()
3348 ilport->ilport_rtpid = atomic_inc_16_nv(&stmf_rtpid_counter); in stmf_register_local_port()
3352 ilport->ilport_standby == 0 && in stmf_register_local_port()
3353 ilport->ilport_alua == 1) { in stmf_register_local_port()
3357 lport = ilport->ilport_lport; in stmf_register_local_port()
3359 lport->lport_id, ilport->ilport_rtpid, in stmf_register_local_port()
3364 ilport->ilport_reg_msgid = stmf_proxy_msg_id++; in stmf_register_local_port()
3367 "port - %s", ilport->ilport_kstat_tgt_name); in stmf_register_local_port()
3371 STMF_EVENT_ALLOC_HANDLE(ilport->ilport_event_hdl); in stmf_register_local_port()
3372 stmf_create_kstat_lport(ilport); in stmf_register_local_port()
3385 ilport->ilport_prev_state = STMF_STATE_OFFLINE; in stmf_register_local_port()
3387 ilport->ilport_prev_state = STMF_STATE_ONLINE; in stmf_register_local_port()
3402 stmf_i_local_port_t *ilport; in stmf_deregister_local_port() local
3413 ilport = (stmf_i_local_port_t *)lport->lport_stmf_private; in stmf_deregister_local_port()
3419 ilport->ilport_standby == 0 && in stmf_deregister_local_port()
3420 ilport->ilport_alua == 1) { in stmf_deregister_local_port()
3433 if (ilport->ilport_nsessions == 0) { in stmf_deregister_local_port()
3434 if (ilport->ilport_next) in stmf_deregister_local_port()
3435 ilport->ilport_next->ilport_prev = ilport->ilport_prev; in stmf_deregister_local_port()
3436 if (ilport->ilport_prev) in stmf_deregister_local_port()
3437 ilport->ilport_prev->ilport_next = ilport->ilport_next; in stmf_deregister_local_port()
3439 stmf_state.stmf_ilportlist = ilport->ilport_next; in stmf_deregister_local_port()
3441 ilport->ilport_instance); in stmf_deregister_local_port()
3442 rw_destroy(&ilport->ilport_lock); in stmf_deregister_local_port()
3448 ilport->ilport_tg = NULL; in stmf_deregister_local_port()
3449 STMF_EVENT_FREE_HANDLE(ilport->ilport_event_hdl); in stmf_deregister_local_port()
3454 if (ilport->ilport_kstat_info) { in stmf_deregister_local_port()
3455 kmem_free(ilport->ilport_kstat_info->ks_data, in stmf_deregister_local_port()
3457 kstat_delete(ilport->ilport_kstat_info); in stmf_deregister_local_port()
3459 if (ilport->ilport_kstat_io) { in stmf_deregister_local_port()
3460 kstat_delete(ilport->ilport_kstat_io); in stmf_deregister_local_port()
3461 mutex_destroy(&ilport->ilport_kstat_lock); in stmf_deregister_local_port()
3746 stmf_i_local_port_t *ilport = (stmf_i_local_port_t *) in stmf_register_scsi_session() local
3757 if (ilport->ilport_state != STMF_STATE_ONLINE) { in stmf_register_scsi_session()
3758 if (ilport->ilport_state != STMF_STATE_OFFLINING) { in stmf_register_scsi_session()
3796 iss->iss_lockp = &ilport->ilport_lock; in stmf_register_scsi_session()
3804 rw_enter(&ilport->ilport_lock, RW_WRITER); in stmf_register_scsi_session()
3805 (void) stmf_session_create_lun_map(ilport, iss); in stmf_register_scsi_session()
3806 ilport->ilport_nsessions++; in stmf_register_scsi_session()
3807 iss->iss_next = ilport->ilport_ss_list; in stmf_register_scsi_session()
3808 ilport->ilport_ss_list = iss; in stmf_register_scsi_session()
3809 rw_exit(&ilport->ilport_lock); in stmf_register_scsi_session()
3928 stmf_i_local_port_t *ilport = (stmf_i_local_port_t *) in stmf_deregister_scsi_session() local
3959 ilport->ilport_standby == 0 && in stmf_deregister_scsi_session()
3960 ilport->ilport_alua == 1) { in stmf_deregister_scsi_session()
3971 rw_enter(&ilport->ilport_lock, RW_WRITER); in stmf_deregister_scsi_session()
3972 for (ppss = &ilport->ilport_ss_list; *ppss != NULL; in stmf_deregister_scsi_session()
3984 ilport->ilport_nsessions--; in stmf_deregister_scsi_session()
3995 rw_exit(&ilport->ilport_lock); in stmf_deregister_scsi_session()
4030 stmf_i_local_port_t *ilport; in stmf_session_id_to_issptr() local
4034 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL; in stmf_session_id_to_issptr()
4035 ilport = ilport->ilport_next) { in stmf_session_id_to_issptr()
4036 rw_enter(&ilport->ilport_lock, RW_WRITER); in stmf_session_id_to_issptr()
4037 for (iss = ilport->ilport_ss_list; iss != NULL; in stmf_session_id_to_issptr()
4041 rw_exit(&ilport->ilport_lock); in stmf_session_id_to_issptr()
4046 rw_exit(&ilport->ilport_lock); in stmf_session_id_to_issptr()
4160 stmf_i_local_port_t *ilport; in stmf_deregister_all_lu_itl_handles() local
4184 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL; in stmf_deregister_all_lu_itl_handles()
4185 ilport = ilport->ilport_next) { in stmf_deregister_all_lu_itl_handles()
4186 rw_enter(&ilport->ilport_lock, RW_WRITER); in stmf_deregister_all_lu_itl_handles()
4187 for (iss = ilport->ilport_ss_list; iss != NULL; in stmf_deregister_all_lu_itl_handles()
4201 rw_exit(&ilport->ilport_lock); in stmf_deregister_all_lu_itl_handles()
4207 rw_exit(&ilport->ilport_lock); in stmf_deregister_all_lu_itl_handles()
5033 stmf_i_local_port_t *ilport; in stmf_data_xfer_done() local
5049 ilport = task->task_lport->lport_stmf_private; in stmf_data_xfer_done()
5050 ilport->ilport_unexpected_comp++; in stmf_data_xfer_done()
5607 stmf_i_local_port_t *ilport; in stmf_ctl() local
5621 ilport = stmf_lookup_lport((stmf_local_port_t *)obj); in stmf_ctl()
5622 if (ilport == NULL) { in stmf_ctl()
5626 stmf_local_port_t *, ilport->ilport_lport, in stmf_ctl()
5724 switch (ilport->ilport_state) { in stmf_ctl()
5746 if (ilport->ilport_flags & ILPORT_FORCED_OFFLINE) { in stmf_ctl()
5757 ilport->ilport_online_times = 0; in stmf_ctl()
5758 ilport->ilport_avg_interval = 0; in stmf_ctl()
5760 if ((ilport->ilport_avg_interval < STMF_AVG_ONLINE_INTERVAL) && in stmf_ctl()
5761 (ilport->ilport_online_times >= 4)) { in stmf_ctl()
5763 ilport->ilport_flags |= ILPORT_FORCED_OFFLINE; in stmf_ctl()
5770 if (ilport->ilport_online_times > 0) { in stmf_ctl()
5771 if (ilport->ilport_online_times == 1) { in stmf_ctl()
5772 ilport->ilport_avg_interval = ddi_get_lbolt() - in stmf_ctl()
5773 ilport->ilport_last_online_clock; in stmf_ctl()
5775 ilport->ilport_avg_interval = in stmf_ctl()
5776 (ilport->ilport_avg_interval + in stmf_ctl()
5778 ilport->ilport_last_online_clock) >> 1; in stmf_ctl()
5781 ilport->ilport_last_online_clock = ddi_get_lbolt(); in stmf_ctl()
5782 ilport->ilport_online_times++; in stmf_ctl()
5787 ilport->ilport_flags &= ~ILPORT_FORCED_OFFLINE; in stmf_ctl()
5788 ilport->ilport_state = STMF_STATE_ONLINING; in stmf_ctl()
5794 if (ilport->ilport_state != STMF_STATE_ONLINING) { in stmf_ctl()
5800 ilport->ilport_state = STMF_STATE_ONLINE; in stmf_ctl()
5807 ilport->ilport_state = STMF_STATE_OFFLINE; in stmf_ctl()
5813 switch (ilport->ilport_state) { in stmf_ctl()
5831 ilport->ilport_state = STMF_STATE_OFFLINING; in stmf_ctl()
5837 if (ilport->ilport_state != STMF_STATE_OFFLINING) { in stmf_ctl()
5843 ilport->ilport_state = STMF_STATE_OFFLINE; in stmf_ctl()
5850 ilport->ilport_state = STMF_STATE_ONLINE; in stmf_ctl()
5925 stmf_i_local_port_t *ilport; in stmf_prepare_tpgs_data() local
5931 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL; in stmf_prepare_tpgs_data()
5932 ilport = ilport->ilport_next) { in stmf_prepare_tpgs_data()
5933 if (ilport->ilport_standby == 1) { in stmf_prepare_tpgs_data()
5996 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL && nports != 0; in stmf_prepare_tpgs_data()
5997 ilport = ilport->ilport_next) { in stmf_prepare_tpgs_data()
5998 if (ilport->ilport_standby == 1) { in stmf_prepare_tpgs_data()
6001 ((uint16_t *)p)[1] = BE_16(ilport->ilport_rtpid); in stmf_prepare_tpgs_data()
6015 for (ilport = stmf_state.stmf_ilportlist; ilport != NULL && in stmf_prepare_tpgs_data()
6016 nports_standby != 0; ilport = ilport->ilport_next) { in stmf_prepare_tpgs_data()
6017 if (ilport->ilport_standby == 0) { in stmf_prepare_tpgs_data()
6020 ((uint16_t *)p)[1] = BE_16(ilport->ilport_rtpid); in stmf_prepare_tpgs_data()
6035 stmf_i_local_port_t *ilport; in stmf_scsilib_get_devid_desc() local
6039 for (ilport = stmf_state.stmf_ilportlist; ilport; in stmf_scsilib_get_devid_desc()
6040 ilport = ilport->ilport_next) { in stmf_scsilib_get_devid_desc()
6041 if (ilport->ilport_rtpid == rtpid) { in stmf_scsilib_get_devid_desc()
6042 scsi_devid_desc_t *id = ilport->ilport_lport->lport_id; in stmf_scsilib_get_devid_desc()
6061 stmf_i_local_port_t *ilport; in stmf_scsilib_get_lport_rtid() local
6066 for (ilport = stmf_state.stmf_ilportlist; ilport; in stmf_scsilib_get_lport_rtid()
6067 ilport = ilport->ilport_next) { in stmf_scsilib_get_lport_rtid()
6068 id = ilport->ilport_lport->lport_id; in stmf_scsilib_get_lport_rtid()
6071 rtpid = ilport->ilport_rtpid; in stmf_scsilib_get_lport_rtid()
6201 stmf_i_local_port_t *ilport; in stmf_scsilib_prepare_vpd_page83() local
6208 ilport = (stmf_i_local_port_t *) in stmf_scsilib_prepare_vpd_page83()
6218 (ilport->ilport_alua || ilport->ilport_standby) && in stmf_scsilib_prepare_vpd_page83()
6219 ilport->ilport_rtpid > 255) || in stmf_scsilib_prepare_vpd_page83()
6221 ilport->ilport_standby != 1)) { in stmf_scsilib_prepare_vpd_page83()
6227 stmf_i_local_port_t *ilport; in stmf_scsilib_prepare_vpd_page83() local
6235 ilport = (stmf_i_local_port_t *) in stmf_scsilib_prepare_vpd_page83()
6237 p[6] = (ilport->ilport_rtpid >> 8) & 0xff; in stmf_scsilib_prepare_vpd_page83()
6238 p[7] = ilport->ilport_rtpid & 0xff; in stmf_scsilib_prepare_vpd_page83()
7378 stmf_i_local_port_t *ilport = in stmf_lport_add_event() local
7385 STMF_EVENT_ADD(ilport->ilport_event_hdl, eventid); in stmf_lport_add_event()
7392 stmf_i_local_port_t *ilport = in stmf_lport_remove_event() local
7396 STMF_EVENT_CLEAR_ALL(ilport->ilport_event_hdl); in stmf_lport_remove_event()
7404 STMF_EVENT_REMOVE(ilport->ilport_event_hdl, eventid); in stmf_lport_remove_event()
7418 stmf_generate_lport_event(stmf_i_local_port_t *ilport, int eventid, void *arg, in stmf_generate_lport_event() argument
7421 if (STMF_EVENT_ENABLED(ilport->ilport_event_hdl, eventid) && in stmf_generate_lport_event()
7422 (ilport->ilport_lport->lport_event_handler != NULL)) { in stmf_generate_lport_event()
7423 ilport->ilport_lport->lport_event_handler( in stmf_generate_lport_event()
7424 ilport->ilport_lport, eventid, arg, flags); in stmf_generate_lport_event()
7698 stmf_i_local_port_t *ilport, *next_ilport; in stmf_svc_timeout() local
7760 for (ilport = stmf_state.stmf_ilportlist; ilport; in stmf_svc_timeout()
7761 ilport = next_ilport) { in stmf_svc_timeout()
7763 next_ilport = ilport->ilport_next; in stmf_svc_timeout()
7765 if ((ilport->ilport_flags & in stmf_svc_timeout()
7770 rw_enter(&ilport->ilport_lock, RW_READER); in stmf_svc_timeout()
7773 for (iss = ilport->ilport_ss_list; iss; in stmf_svc_timeout()
7785 rw_exit(&ilport->ilport_lock); in stmf_svc_timeout()
7788 stmf_generate_lport_event(ilport, in stmf_svc_timeout()
7803 atomic_and_32(&ilport->ilport_flags, in stmf_svc_timeout()
7807 rw_exit(&ilport->ilport_lock); in stmf_svc_timeout()