Lines Matching refs:fc
111 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_attach_chan() local
138 fc->sim = sim; in isp_attach_chan()
139 fc->path = path; in isp_attach_chan()
140 fc->isp = isp; in isp_attach_chan()
141 fc->ready = 1; in isp_attach_chan()
145 callout_init_mtx(&fc->gdt, &isp->isp_lock, 0); in isp_attach_chan()
146 TASK_INIT(&fc->gtask, 1, isp_gdt_task, fc); in isp_attach_chan()
148 TAILQ_INIT(&fc->waitq); in isp_attach_chan()
149 STAILQ_INIT(&fc->ntfree); in isp_attach_chan()
151 STAILQ_INSERT_TAIL(&fc->ntfree, &fc->ntpool[i], next); in isp_attach_chan()
152 LIST_INIT(&fc->atfree); in isp_attach_chan()
154 LIST_INSERT_HEAD(&fc->atfree, &fc->atpool[i], next); in isp_attach_chan()
156 LIST_INIT(&fc->atused[i]); in isp_attach_chan()
160 if (kproc_create(isp_kthread, fc, &fc->kproc, 0, 0, in isp_attach_chan()
162 xpt_free_path(fc->path); in isp_attach_chan()
163 xpt_bus_deregister(cam_sim_path(fc->sim)); in isp_attach_chan()
164 cam_sim_free(fc->sim, FALSE); in isp_attach_chan()
167 fc->num_threads += 1; in isp_attach_chan()
181 "loop_down_limit", CTLFLAG_RW, &fc->loop_down_limit, 0, in isp_attach_chan()
184 "gone_device_time", CTLFLAG_RW, &fc->gone_device_time, 0, in isp_attach_chan()
188 "inject_lost_data_frame", CTLFLAG_RW, &fc->inject_lost_data_frame, 0, in isp_attach_chan()
230 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_detach_chan() local
232 xpt_free_path(fc->path); in isp_detach_chan()
233 xpt_bus_deregister(cam_sim_path(fc->sim)); in isp_detach_chan()
234 cam_sim_free(fc->sim, FALSE); in isp_detach_chan()
237 wakeup(fc); in isp_detach_chan()
238 while (fc->num_threads != 0) in isp_detach_chan()
239 mtx_sleep(&fc->num_threads, &isp->isp_lock, PRIBIO, "isp_reap", 0); in isp_detach_chan()
307 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_freeze_loopdown() local
309 if (fc->sim == NULL) in isp_freeze_loopdown()
311 if (fc->simqfrozen == 0) { in isp_freeze_loopdown()
314 fc->simqfrozen = SIMQFRZ_LOOPDOWN; in isp_freeze_loopdown()
316 xpt_freeze_simq(fc->sim, 1); in isp_freeze_loopdown()
320 fc->simqfrozen |= SIMQFRZ_LOOPDOWN; in isp_freeze_loopdown()
327 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_unfreeze_loopdown() local
329 if (fc->sim == NULL) in isp_unfreeze_loopdown()
331 int wasfrozen = fc->simqfrozen & SIMQFRZ_LOOPDOWN; in isp_unfreeze_loopdown()
332 fc->simqfrozen &= ~SIMQFRZ_LOOPDOWN; in isp_unfreeze_loopdown()
333 if (wasfrozen && fc->simqfrozen == 0) { in isp_unfreeze_loopdown()
336 xpt_release_simq(fc->sim, 1); in isp_unfreeze_loopdown()
348 struct isp_fc *fc = ISP_FC_PC(isp, 0); in isp_rq_check_above() local
350 if (isp->isp_rqovf || fc->sim == NULL) in isp_rq_check_above()
353 xpt_freeze_simq(fc->sim, 1); in isp_rq_check_above()
361 struct isp_fc *fc = ISP_FC_PC(isp, 0); in isp_rq_check_below() local
363 if (!isp->isp_rqovf || fc->sim == NULL) in isp_rq_check_below()
366 xpt_release_simq(fc->sim, 0); in isp_rq_check_below()
653 struct isp_fc *fc = ISP_FC_PC(isp, bus); in get_lun_statep() local
656 SLIST_FOREACH(tptr, &fc->lun_hash[LUN_HASH_FUNC(lun)], next) { in get_lun_statep()
693 struct isp_fc *fc; in isp_tmcmd_restart() local
699 fc = ISP_FC_PC(isp, bus); in isp_tmcmd_restart()
701 SLIST_FOREACH(tptr, &fc->lun_hash[i], next) in isp_tmcmd_restart()
708 ccb = (union ccb *)TAILQ_FIRST(&fc->waitq); in isp_tmcmd_restart()
710 TAILQ_REMOVE(&fc->waitq, &ccb->ccb_h, sim_links.tqe); in isp_tmcmd_restart()
721 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_get_atpd() local
724 atp = LIST_FIRST(&fc->atfree); in isp_get_atpd()
729 LIST_INSERT_HEAD(&fc->atused[ATPDPHASH(tag)], atp, next); in isp_get_atpd()
737 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_find_atpd() local
740 LIST_FOREACH(atp, &fc->atused[ATPDPHASH(tag)], next) { in isp_find_atpd()
754 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_find_atpd_ccb() local
757 LIST_FOREACH(atp, &fc->atused[ATPDPHASH(tag)], next) { in isp_find_atpd_ccb()
767 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_put_atpd() local
773 LIST_INSERT_HEAD(&fc->atfree, atp, next); in isp_put_atpd()
779 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_dump_atpd() local
783 for (atp = fc->atpool; atp < &fc->atpool[ATPDPSIZE]; atp++) { in isp_dump_atpd()
794 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_get_ntpd() local
797 ntp = STAILQ_FIRST(&fc->ntfree); in isp_get_ntpd()
799 STAILQ_REMOVE_HEAD(&fc->ntfree, next); in isp_get_ntpd()
806 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_find_ntpd() local
809 for (ntp = fc->ntpool; ntp < &fc->ntpool[ATPDPSIZE]; ntp++) { in isp_find_ntpd()
819 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_put_ntpd() local
822 STAILQ_INSERT_HEAD(&fc->ntfree, ntp, next); in isp_put_ntpd()
828 struct isp_fc *fc = ISP_FC_PC(isp, bus); in create_lun_state() local
840 SLIST_INSERT_HEAD(&fc->lun_hash[LUN_HASH_FUNC(lun)], tptr, next); in create_lun_state()
848 struct isp_fc *fc = ISP_FC_PC(isp, bus); in destroy_lun_state() local
867 SLIST_REMOVE(&fc->lun_hash[LUN_HASH_FUNC(tptr->ts_lun)], tptr, tstate, next); in destroy_lun_state()
1986 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_here() local
1996 if (xpt_create_path(&ccb->ccb_h.path, NULL, cam_sim_path(fc->sim), in isp_make_here()
2009 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_gone() local
2011 if (xpt_create_path(&tp, NULL, cam_sim_path(fc->sim), tgt, CAM_LUN_WILDCARD) == CAM_REQ_CMP) { in isp_make_gone()
2030 struct isp_fc *fc = arg; in isp_gdt() local
2031 taskqueue_enqueue(taskqueue_thread, &fc->gtask); in isp_gdt()
2037 struct isp_fc *fc = arg; in isp_gdt_task() local
2038 ispsoftc_t *isp = fc->isp; in isp_gdt_task()
2039 int chan = fc - ISP_FC_PC(isp, 0); in isp_gdt_task()
2071 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_gdt_task()
2075 if (fc->ready) { in isp_gdt_task()
2077 callout_reset(&fc->gdt, hz, isp_gdt, fc); in isp_gdt_task()
2079 callout_deactivate(&fc->gdt); in isp_gdt_task()
2099 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_changed() local
2101 if (fc->loop_down_time) in isp_loop_changed()
2106 fc->loop_down_time = time_uptime; in isp_loop_changed()
2107 wakeup(fc); in isp_loop_changed()
2113 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_up() local
2116 fc->loop_seen_once = 1; in isp_loop_up()
2117 fc->loop_down_time = 0; in isp_loop_up()
2125 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_dead() local
2189 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_loop_dead()
2194 fc->loop_down_time = 0; in isp_loop_dead()
2200 struct isp_fc *fc = arg; in isp_kthread() local
2201 ispsoftc_t *isp = fc->isp; in isp_kthread()
2202 int chan = fc - ISP_FC_PC(isp, 0); in isp_kthread()
2232 if (fc->loop_seen_once == 0) in isp_kthread()
2235 lim = fc->loop_down_limit; in isp_kthread()
2236 d = time_uptime - fc->loop_down_time; in isp_kthread()
2260 msleep(fc, &isp->isp_lock, PRIBIO, "ispf", slp * hz); in isp_kthread()
2262 fc->num_threads -= 1; in isp_kthread()
2263 wakeup(&fc->num_threads); in isp_kthread()
2612 struct ccb_trans_settings_fc *fc; in isp_action() local
2616 fc = &cts->xport_specific.fc; in isp_action()
2627 fc->valid = CTS_FC_VALID_SPEED; in isp_action()
2628 fc->bitrate = fcp->isp_gbspeed * 100000; in isp_action()
2631 fc->wwnn = lp->node_wwn; in isp_action()
2632 fc->wwpn = lp->port_wwn; in isp_action()
2633 fc->port = lp->portid; in isp_action()
2634 fc->valid |= CTS_FC_VALID_WWNN | CTS_FC_VALID_WWPN | CTS_FC_VALID_PORT; in isp_action()
2670 if (kp->xport_specific.fc.valid & KNOB_VALID_ADDRESS) { in isp_action()
2671 fcp->isp_wwnn = ISP_FC_PC(isp, bus)->def_wwnn = kp->xport_specific.fc.wwnn; in isp_action()
2672 fcp->isp_wwpn = ISP_FC_PC(isp, bus)->def_wwpn = kp->xport_specific.fc.wwpn; in isp_action()
2676 if (kp->xport_specific.fc.valid & KNOB_VALID_ROLE) { in isp_action()
2680 switch (kp->xport_specific.fc.role) { in isp_action()
2725 kp->xport_specific.fc.wwnn = fcp->isp_wwnn; in isp_action()
2726 kp->xport_specific.fc.wwpn = fcp->isp_wwpn; in isp_action()
2729 kp->xport_specific.fc.role = KNOB_ROLE_NONE; in isp_action()
2732 kp->xport_specific.fc.role = KNOB_ROLE_TARGET; in isp_action()
2735 kp->xport_specific.fc.role = KNOB_ROLE_INITIATOR; in isp_action()
2738 kp->xport_specific.fc.role = KNOB_ROLE_BOTH; in isp_action()
2741 kp->xport_specific.fc.valid = KNOB_VALID_ADDRESS | KNOB_VALID_ROLE; in isp_action()
2783 cpi->xport_specific.fc.wwnn = fcp->isp_wwnn; in isp_action()
2784 cpi->xport_specific.fc.wwpn = fcp->isp_wwpn; in isp_action()
2785 cpi->xport_specific.fc.port = fcp->isp_portid; in isp_action()
2786 cpi->xport_specific.fc.bitrate = fcp->isp_gbspeed * 1000; in isp_action()
2848 struct isp_fc *fc; in isp_async() local
2904 fc = ISP_FC_PC(isp, bus); in isp_async()
2923 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_async()
2936 fc = ISP_FC_PC(isp, bus); in isp_async()
2972 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_async()
2986 fc = ISP_FC_PC(isp, bus); in isp_async()
2995 lp->gone_timer = fc->gone_device_time; in isp_async()
2997 if (fc->ready && !callout_active(&fc->gdt)) { in isp_async()
2999 callout_reset(&fc->gdt, hz, isp_gdt, fc); in isp_async()
3179 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_default_wwn() local
3182 seed = iswwnn ? fc->def_wwnn : fc->def_wwpn; in isp_default_wwn()
3273 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_fc_scratch_acquire() local
3275 if (fc->fcbsy) in isp_fc_scratch_acquire()
3277 fc->fcbsy = 1; in isp_fc_scratch_acquire()
3415 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_fcp_reset_crn() local
3427 for (nxp = fc->nexus_hash[i]; nxp != NULL; nxp = nxp->next) { in isp_fcp_reset_crn()
3439 struct isp_fc *fc; in isp_fcp_next_crn() local
3446 fc = ISP_FC_PC(isp, chan); in isp_fcp_next_crn()
3448 nxp = fc->nexus_hash[idx]; in isp_fcp_next_crn()
3456 nxp = fc->nexus_free_list; in isp_fcp_next_crn()
3463 fc->nexus_free_list = nxp->next; in isp_fcp_next_crn()
3467 nxp->next = fc->nexus_hash[idx]; in isp_fcp_next_crn()
3468 fc->nexus_hash[idx] = nxp; in isp_fcp_next_crn()