Lines Matching refs:fc
113 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_attach_chan() local
140 fc->sim = sim; in isp_attach_chan()
141 fc->path = path; in isp_attach_chan()
142 fc->isp = isp; in isp_attach_chan()
143 fc->ready = 1; in isp_attach_chan()
147 callout_init_mtx(&fc->gdt, &isp->isp_lock, 0); in isp_attach_chan()
148 TASK_INIT(&fc->gtask, 1, isp_gdt_task, fc); in isp_attach_chan()
150 TAILQ_INIT(&fc->waitq); in isp_attach_chan()
151 STAILQ_INIT(&fc->ntfree); in isp_attach_chan()
153 STAILQ_INSERT_TAIL(&fc->ntfree, &fc->ntpool[i], next); in isp_attach_chan()
154 LIST_INIT(&fc->atfree); in isp_attach_chan()
156 LIST_INSERT_HEAD(&fc->atfree, &fc->atpool[i], next); in isp_attach_chan()
158 LIST_INIT(&fc->atused[i]); in isp_attach_chan()
162 if (kproc_create(isp_kthread, fc, &fc->kproc, 0, 0, in isp_attach_chan()
164 xpt_free_path(fc->path); in isp_attach_chan()
165 xpt_bus_deregister(cam_sim_path(fc->sim)); in isp_attach_chan()
166 cam_sim_free(fc->sim, FALSE); in isp_attach_chan()
169 fc->num_threads += 1; in isp_attach_chan()
183 "loop_down_limit", CTLFLAG_RW, &fc->loop_down_limit, 0, in isp_attach_chan()
186 "gone_device_time", CTLFLAG_RW, &fc->gone_device_time, 0, in isp_attach_chan()
190 "inject_lost_data_frame", CTLFLAG_RW, &fc->inject_lost_data_frame, 0, in isp_attach_chan()
223 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_detach_chan() local
225 xpt_free_path(fc->path); in isp_detach_chan()
226 xpt_bus_deregister(cam_sim_path(fc->sim)); in isp_detach_chan()
227 cam_sim_free(fc->sim, FALSE); in isp_detach_chan()
230 wakeup(fc); in isp_detach_chan()
231 while (fc->num_threads != 0) in isp_detach_chan()
232 mtx_sleep(&fc->num_threads, &isp->isp_lock, PRIBIO, "isp_reap", 0); in isp_detach_chan()
300 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_freeze_loopdown() local
302 if (fc->sim == NULL) in isp_freeze_loopdown()
304 if (fc->simqfrozen == 0) { in isp_freeze_loopdown()
307 fc->simqfrozen = SIMQFRZ_LOOPDOWN; in isp_freeze_loopdown()
309 xpt_freeze_simq(fc->sim, 1); in isp_freeze_loopdown()
313 fc->simqfrozen |= SIMQFRZ_LOOPDOWN; in isp_freeze_loopdown()
320 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_unfreeze_loopdown() local
322 if (fc->sim == NULL) in isp_unfreeze_loopdown()
324 int wasfrozen = fc->simqfrozen & SIMQFRZ_LOOPDOWN; in isp_unfreeze_loopdown()
325 fc->simqfrozen &= ~SIMQFRZ_LOOPDOWN; in isp_unfreeze_loopdown()
326 if (wasfrozen && fc->simqfrozen == 0) { in isp_unfreeze_loopdown()
329 xpt_release_simq(fc->sim, 1); in isp_unfreeze_loopdown()
341 struct isp_fc *fc = ISP_FC_PC(isp, 0); in isp_rq_check_above() local
343 if (isp->isp_rqovf || fc->sim == NULL) in isp_rq_check_above()
346 xpt_freeze_simq(fc->sim, 1); in isp_rq_check_above()
354 struct isp_fc *fc = ISP_FC_PC(isp, 0); in isp_rq_check_below() local
356 if (!isp->isp_rqovf || fc->sim == NULL) in isp_rq_check_below()
359 xpt_release_simq(fc->sim, 0); in isp_rq_check_below()
645 struct isp_fc *fc = ISP_FC_PC(isp, bus); in get_lun_statep() local
648 SLIST_FOREACH(tptr, &fc->lun_hash[LUN_HASH_FUNC(lun)], next) { in get_lun_statep()
685 struct isp_fc *fc; in isp_tmcmd_restart() local
691 fc = ISP_FC_PC(isp, bus); in isp_tmcmd_restart()
693 SLIST_FOREACH(tptr, &fc->lun_hash[i], next) in isp_tmcmd_restart()
700 ccb = (union ccb *)TAILQ_FIRST(&fc->waitq); in isp_tmcmd_restart()
702 TAILQ_REMOVE(&fc->waitq, &ccb->ccb_h, sim_links.tqe); in isp_tmcmd_restart()
713 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_get_atpd() local
716 atp = LIST_FIRST(&fc->atfree); in isp_get_atpd()
720 LIST_INSERT_HEAD(&fc->atused[ATPDPHASH(tag)], atp, next); in isp_get_atpd()
728 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_find_atpd() local
731 LIST_FOREACH(atp, &fc->atused[ATPDPHASH(tag)], next) { in isp_find_atpd()
741 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_put_atpd() local
747 LIST_INSERT_HEAD(&fc->atfree, atp, next); in isp_put_atpd()
753 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_dump_atpd() local
757 for (atp = fc->atpool; atp < &fc->atpool[ATPDPSIZE]; atp++) { in isp_dump_atpd()
768 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_get_ntpd() local
771 ntp = STAILQ_FIRST(&fc->ntfree); in isp_get_ntpd()
773 STAILQ_REMOVE_HEAD(&fc->ntfree, next); in isp_get_ntpd()
780 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_find_ntpd() local
783 for (ntp = fc->ntpool; ntp < &fc->ntpool[ATPDPSIZE]; ntp++) { in isp_find_ntpd()
793 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_put_ntpd() local
796 STAILQ_INSERT_HEAD(&fc->ntfree, ntp, next); in isp_put_ntpd()
802 struct isp_fc *fc = ISP_FC_PC(isp, bus); in create_lun_state() local
814 SLIST_INSERT_HEAD(&fc->lun_hash[LUN_HASH_FUNC(lun)], tptr, next); in create_lun_state()
822 struct isp_fc *fc = ISP_FC_PC(isp, bus); in destroy_lun_state() local
841 SLIST_REMOVE(&fc->lun_hash[LUN_HASH_FUNC(tptr->ts_lun)], tptr, tstate, next); in destroy_lun_state()
1889 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_target_mark_aborted_early() local
1911 for (atp = fc->atpool; atp < &fc->atpool[ATPDPSIZE]; atp++) { in isp_target_mark_aborted_early()
1996 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_here() local
2006 if (xpt_create_path(&ccb->ccb_h.path, NULL, cam_sim_path(fc->sim), in isp_make_here()
2019 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_gone() local
2021 if (xpt_create_path(&tp, NULL, cam_sim_path(fc->sim), tgt, CAM_LUN_WILDCARD) == CAM_REQ_CMP) { in isp_make_gone()
2040 struct isp_fc *fc = arg; in isp_gdt() local
2041 taskqueue_enqueue(taskqueue_thread, &fc->gtask); in isp_gdt()
2047 struct isp_fc *fc = arg; in isp_gdt_task() local
2048 ispsoftc_t *isp = fc->isp; in isp_gdt_task()
2049 int chan = fc - ISP_FC_PC(isp, 0); in isp_gdt_task()
2081 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_gdt_task()
2085 if (fc->ready) { in isp_gdt_task()
2087 callout_reset(&fc->gdt, hz, isp_gdt, fc); in isp_gdt_task()
2089 callout_deactivate(&fc->gdt); in isp_gdt_task()
2109 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_changed() local
2111 if (fc->loop_down_time) in isp_loop_changed()
2116 fc->loop_down_time = time_uptime; in isp_loop_changed()
2117 wakeup(fc); in isp_loop_changed()
2123 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_up() local
2126 fc->loop_seen_once = 1; in isp_loop_up()
2127 fc->loop_down_time = 0; in isp_loop_up()
2135 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_dead() local
2199 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_loop_dead()
2204 fc->loop_down_time = 0; in isp_loop_dead()
2210 struct isp_fc *fc = arg; in isp_kthread() local
2211 ispsoftc_t *isp = fc->isp; in isp_kthread()
2212 int chan = fc - ISP_FC_PC(isp, 0); in isp_kthread()
2242 if (fc->loop_seen_once == 0) in isp_kthread()
2245 lim = fc->loop_down_limit; in isp_kthread()
2246 d = time_uptime - fc->loop_down_time; in isp_kthread()
2270 msleep(fc, &isp->isp_lock, PRIBIO, "ispf", slp * hz); in isp_kthread()
2272 fc->num_threads -= 1; in isp_kthread()
2273 wakeup(&fc->num_threads); in isp_kthread()
2600 struct ccb_trans_settings_fc *fc; in isp_action() local
2604 fc = &cts->xport_specific.fc; in isp_action()
2615 fc->valid = CTS_FC_VALID_SPEED; in isp_action()
2616 fc->bitrate = fcp->isp_gbspeed * 100000; in isp_action()
2619 fc->wwnn = lp->node_wwn; in isp_action()
2620 fc->wwpn = lp->port_wwn; in isp_action()
2621 fc->port = lp->portid; in isp_action()
2622 fc->valid |= CTS_FC_VALID_WWNN | CTS_FC_VALID_WWPN | CTS_FC_VALID_PORT; in isp_action()
2658 if (kp->xport_specific.fc.valid & KNOB_VALID_ADDRESS) { in isp_action()
2659 fcp->isp_wwnn = ISP_FC_PC(isp, bus)->def_wwnn = kp->xport_specific.fc.wwnn; in isp_action()
2660 fcp->isp_wwpn = ISP_FC_PC(isp, bus)->def_wwpn = kp->xport_specific.fc.wwpn; in isp_action()
2664 if (kp->xport_specific.fc.valid & KNOB_VALID_ROLE) { in isp_action()
2668 switch (kp->xport_specific.fc.role) { in isp_action()
2713 kp->xport_specific.fc.wwnn = fcp->isp_wwnn; in isp_action()
2714 kp->xport_specific.fc.wwpn = fcp->isp_wwpn; in isp_action()
2717 kp->xport_specific.fc.role = KNOB_ROLE_NONE; in isp_action()
2720 kp->xport_specific.fc.role = KNOB_ROLE_TARGET; in isp_action()
2723 kp->xport_specific.fc.role = KNOB_ROLE_INITIATOR; in isp_action()
2726 kp->xport_specific.fc.role = KNOB_ROLE_BOTH; in isp_action()
2729 kp->xport_specific.fc.valid = KNOB_VALID_ADDRESS | KNOB_VALID_ROLE; in isp_action()
2771 cpi->xport_specific.fc.wwnn = fcp->isp_wwnn; in isp_action()
2772 cpi->xport_specific.fc.wwpn = fcp->isp_wwpn; in isp_action()
2773 cpi->xport_specific.fc.port = fcp->isp_portid; in isp_action()
2774 cpi->xport_specific.fc.bitrate = fcp->isp_gbspeed * 1000; in isp_action()
2836 struct isp_fc *fc; in isp_async() local
2892 fc = ISP_FC_PC(isp, bus); in isp_async()
2911 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_async()
2924 fc = ISP_FC_PC(isp, bus); in isp_async()
2960 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_async()
2974 fc = ISP_FC_PC(isp, bus); in isp_async()
2983 lp->gone_timer = fc->gone_device_time; in isp_async()
2985 if (fc->ready && !callout_active(&fc->gdt)) { in isp_async()
2987 callout_reset(&fc->gdt, hz, isp_gdt, fc); in isp_async()
3167 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_default_wwn() local
3170 seed = iswwnn ? fc->def_wwnn : fc->def_wwpn; in isp_default_wwn()
3261 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_fc_scratch_acquire() local
3263 if (fc->fcbsy) in isp_fc_scratch_acquire()
3265 fc->fcbsy = 1; in isp_fc_scratch_acquire()
3403 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_fcp_reset_crn() local
3415 for (nxp = fc->nexus_hash[i]; nxp != NULL; nxp = nxp->next) { in isp_fcp_reset_crn()
3427 struct isp_fc *fc; in isp_fcp_next_crn() local
3434 fc = ISP_FC_PC(isp, chan); in isp_fcp_next_crn()
3436 nxp = fc->nexus_hash[idx]; in isp_fcp_next_crn()
3444 nxp = fc->nexus_free_list; in isp_fcp_next_crn()
3451 fc->nexus_free_list = nxp->next; in isp_fcp_next_crn()
3455 nxp->next = fc->nexus_hash[idx]; in isp_fcp_next_crn()
3456 fc->nexus_hash[idx] = nxp; in isp_fcp_next_crn()