Lines Matching refs:fc
165 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_attach_chan() local
171 fc->sim = sim; in isp_attach_chan()
172 fc->path = path; in isp_attach_chan()
173 fc->isp = isp; in isp_attach_chan()
174 fc->ready = 1; in isp_attach_chan()
178 callout_init_mtx(&fc->gdt, &isp->isp_lock, 0); in isp_attach_chan()
179 TASK_INIT(&fc->gtask, 1, isp_gdt_task, fc); in isp_attach_chan()
181 TAILQ_INIT(&fc->waitq); in isp_attach_chan()
182 STAILQ_INIT(&fc->ntfree); in isp_attach_chan()
184 STAILQ_INSERT_TAIL(&fc->ntfree, &fc->ntpool[i], next); in isp_attach_chan()
185 LIST_INIT(&fc->atfree); in isp_attach_chan()
187 LIST_INSERT_HEAD(&fc->atfree, &fc->atpool[i], next); in isp_attach_chan()
189 LIST_INIT(&fc->atused[i]); in isp_attach_chan()
193 if (kproc_create(isp_kthread, fc, &fc->kproc, 0, 0, in isp_attach_chan()
195 xpt_free_path(fc->path); in isp_attach_chan()
197 xpt_bus_deregister(cam_sim_path(fc->sim)); in isp_attach_chan()
199 cam_sim_free(fc->sim, FALSE); in isp_attach_chan()
202 fc->num_threads += 1; in isp_attach_chan()
215 "loop_down_limit", CTLFLAG_RW, &fc->loop_down_limit, 0, in isp_attach_chan()
218 "gone_device_time", CTLFLAG_RW, &fc->gone_device_time, 0, in isp_attach_chan()
222 "inject_lost_data_frame", CTLFLAG_RW, &fc->inject_lost_data_frame, 0, in isp_attach_chan()
353 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_freeze_loopdown() local
355 if (fc->sim == NULL) in isp_freeze_loopdown()
357 if (fc->simqfrozen == 0) { in isp_freeze_loopdown()
360 fc->simqfrozen = SIMQFRZ_LOOPDOWN; in isp_freeze_loopdown()
362 xpt_freeze_simq(fc->sim, 1); in isp_freeze_loopdown()
366 fc->simqfrozen |= SIMQFRZ_LOOPDOWN; in isp_freeze_loopdown()
373 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_unfreeze_loopdown() local
375 if (fc->sim == NULL) in isp_unfreeze_loopdown()
377 int wasfrozen = fc->simqfrozen & SIMQFRZ_LOOPDOWN; in isp_unfreeze_loopdown()
378 fc->simqfrozen &= ~SIMQFRZ_LOOPDOWN; in isp_unfreeze_loopdown()
379 if (wasfrozen && fc->simqfrozen == 0) { in isp_unfreeze_loopdown()
382 xpt_release_simq(fc->sim, 1); in isp_unfreeze_loopdown()
2599 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_here() local
2609 if (xpt_create_path(&ccb->ccb_h.path, NULL, cam_sim_path(fc->sim), in isp_make_here()
2622 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_gone() local
2624 if (xpt_create_path(&tp, NULL, cam_sim_path(fc->sim), tgt, CAM_LUN_WILDCARD) == CAM_REQ_CMP) { in isp_make_gone()
2643 struct isp_fc *fc = arg; in isp_gdt() local
2644 taskqueue_enqueue(taskqueue_thread, &fc->gtask); in isp_gdt()
2650 struct isp_fc *fc = arg; in isp_gdt_task() local
2651 ispsoftc_t *isp = fc->isp; in isp_gdt_task()
2652 int chan = fc - isp->isp_osinfo.pc.fc; in isp_gdt_task()
2684 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_gdt_task()
2688 if (fc->ready) { in isp_gdt_task()
2690 callout_reset(&fc->gdt, hz, isp_gdt, fc); in isp_gdt_task()
2692 callout_deactivate(&fc->gdt); in isp_gdt_task()
2712 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_changed() local
2714 if (fc->loop_down_time) in isp_loop_changed()
2719 fc->loop_down_time = time_uptime; in isp_loop_changed()
2720 wakeup(fc); in isp_loop_changed()
2726 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_up() local
2729 fc->loop_seen_once = 1; in isp_loop_up()
2730 fc->loop_down_time = 0; in isp_loop_up()
2738 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_dead() local
2804 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_loop_dead()
2809 fc->loop_down_time = 0; in isp_loop_dead()
2815 struct isp_fc *fc = arg; in isp_kthread() local
2816 ispsoftc_t *isp = fc->isp; in isp_kthread()
2817 int chan = fc - isp->isp_osinfo.pc.fc; in isp_kthread()
2847 if (fc->loop_seen_once == 0) in isp_kthread()
2850 lim = fc->loop_down_limit; in isp_kthread()
2851 d = time_uptime - fc->loop_down_time; in isp_kthread()
2875 msleep(fc, &isp->isp_lock, PRIBIO, "ispf", slp * hz); in isp_kthread()
2877 fc->num_threads -= 1; in isp_kthread()
3271 struct ccb_trans_settings_fc *fc = &cts->xport_specific.fc; in isp_action() local
3280 fc->valid = CTS_FC_VALID_SPEED; in isp_action()
3281 fc->bitrate = 100000; in isp_action()
3282 fc->bitrate *= fcp->isp_gbspeed; in isp_action()
3285 fc->wwnn = lp->node_wwn; in isp_action()
3286 fc->wwpn = lp->port_wwn; in isp_action()
3287 fc->port = lp->portid; in isp_action()
3288 fc->valid |= CTS_FC_VALID_WWNN | CTS_FC_VALID_WWPN | CTS_FC_VALID_PORT; in isp_action()
3392 if (kp->xport_specific.fc.valid & KNOB_VALID_ADDRESS) { in isp_action()
3393 fcp->isp_wwnn = ISP_FC_PC(isp, bus)->def_wwnn = kp->xport_specific.fc.wwnn; in isp_action()
3394 fcp->isp_wwpn = ISP_FC_PC(isp, bus)->def_wwpn = kp->xport_specific.fc.wwpn; in isp_action()
3398 if (kp->xport_specific.fc.valid & KNOB_VALID_ROLE) { in isp_action()
3402 switch (kp->xport_specific.fc.role) { in isp_action()
3451 kp->xport_specific.fc.wwnn = fcp->isp_wwnn; in isp_action()
3452 kp->xport_specific.fc.wwpn = fcp->isp_wwpn; in isp_action()
3455 kp->xport_specific.fc.role = KNOB_ROLE_NONE; in isp_action()
3458 kp->xport_specific.fc.role = KNOB_ROLE_TARGET; in isp_action()
3461 kp->xport_specific.fc.role = KNOB_ROLE_INITIATOR; in isp_action()
3464 kp->xport_specific.fc.role = KNOB_ROLE_BOTH; in isp_action()
3467 kp->xport_specific.fc.valid = KNOB_VALID_ADDRESS | KNOB_VALID_ROLE; in isp_action()
3523 cpi->xport_specific.fc.wwnn = fcp->isp_wwnn; in isp_action()
3524 cpi->xport_specific.fc.wwpn = fcp->isp_wwpn; in isp_action()
3525 cpi->xport_specific.fc.port = fcp->isp_portid; in isp_action()
3526 cpi->xport_specific.fc.bitrate = fcp->isp_gbspeed * 1000; in isp_action()
3596 struct isp_fc *fc; in isp_async() local
3721 fc = ISP_FC_PC(isp, bus); in isp_async()
3740 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_async()
3753 fc = ISP_FC_PC(isp, bus); in isp_async()
3789 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_async()
3803 fc = ISP_FC_PC(isp, bus); in isp_async()
3812 lp->gone_timer = fc->gone_device_time; in isp_async()
3814 if (fc->ready && !callout_active(&fc->gdt)) { in isp_async()
3816 callout_reset(&fc->gdt, hz, isp_gdt, fc); in isp_async()
4018 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_default_wwn() local
4021 seed = iswwnn ? fc->def_wwnn : fc->def_wwpn; in isp_default_wwn()
4171 if (isp->isp_osinfo.pc.fc[chan].fcbsy) { in isp_fc_scratch_acquire()
4174 isp->isp_osinfo.pc.fc[chan].fcbsy = 1; in isp_fc_scratch_acquire()
4236 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_fcp_reset_crn() local
4248 for (nxp = fc->nexus_hash[i]; nxp != NULL; nxp = nxp->next) { in isp_fcp_reset_crn()
4260 struct isp_fc *fc; in isp_fcp_next_crn() local
4270 fc = &isp->isp_osinfo.pc.fc[chan]; in isp_fcp_next_crn()
4272 nxp = fc->nexus_hash[idx]; in isp_fcp_next_crn()
4280 nxp = fc->nexus_free_list; in isp_fcp_next_crn()
4287 fc->nexus_free_list = nxp->next; in isp_fcp_next_crn()
4291 nxp->next = fc->nexus_hash[idx]; in isp_fcp_next_crn()
4292 fc->nexus_hash[idx] = nxp; in isp_fcp_next_crn()