Lines Matching refs:fc

160 		struct isp_fc *fc = ISP_FC_PC(isp, chan);  in isp_attach_chan()  local
165 fc->sim = sim; in isp_attach_chan()
166 fc->path = path; in isp_attach_chan()
167 fc->isp = isp; in isp_attach_chan()
168 fc->ready = 1; in isp_attach_chan()
172 callout_init_mtx(&fc->gdt, &isp->isp_lock, 0); in isp_attach_chan()
173 TASK_INIT(&fc->gtask, 1, isp_gdt_task, fc); in isp_attach_chan()
175 TAILQ_INIT(&fc->waitq); in isp_attach_chan()
176 STAILQ_INIT(&fc->ntfree); in isp_attach_chan()
178 STAILQ_INSERT_TAIL(&fc->ntfree, &fc->ntpool[i], next); in isp_attach_chan()
179 LIST_INIT(&fc->atfree); in isp_attach_chan()
181 LIST_INSERT_HEAD(&fc->atfree, &fc->atpool[i], next); in isp_attach_chan()
183 LIST_INIT(&fc->atused[i]); in isp_attach_chan()
186 if (kproc_create(isp_kthread, fc, &fc->kproc, 0, 0, in isp_attach_chan()
188 xpt_free_path(fc->path); in isp_attach_chan()
190 xpt_bus_deregister(cam_sim_path(fc->sim)); in isp_attach_chan()
192 cam_sim_free(fc->sim, FALSE); in isp_attach_chan()
195 fc->num_threads += 1; in isp_attach_chan()
208 "loop_down_limit", CTLFLAG_RW, &fc->loop_down_limit, 0, in isp_attach_chan()
211 "gone_device_time", CTLFLAG_RW, &fc->gone_device_time, 0, in isp_attach_chan()
215 "inject_lost_data_frame", CTLFLAG_RW, &fc->inject_lost_data_frame, 0, in isp_attach_chan()
344 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_freeze_loopdown() local
346 if (fc->sim == NULL) in isp_freeze_loopdown()
348 if (fc->simqfrozen == 0) { in isp_freeze_loopdown()
351 fc->simqfrozen = SIMQFRZ_LOOPDOWN; in isp_freeze_loopdown()
353 xpt_freeze_simq(fc->sim, 1); in isp_freeze_loopdown()
357 fc->simqfrozen |= SIMQFRZ_LOOPDOWN; in isp_freeze_loopdown()
364 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_unfreeze_loopdown() local
366 if (fc->sim == NULL) in isp_unfreeze_loopdown()
368 int wasfrozen = fc->simqfrozen & SIMQFRZ_LOOPDOWN; in isp_unfreeze_loopdown()
369 fc->simqfrozen &= ~SIMQFRZ_LOOPDOWN; in isp_unfreeze_loopdown()
370 if (wasfrozen && fc->simqfrozen == 0) { in isp_unfreeze_loopdown()
373 xpt_release_simq(fc->sim, 1); in isp_unfreeze_loopdown()
2592 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_here() local
2602 if (xpt_create_path(&ccb->ccb_h.path, NULL, cam_sim_path(fc->sim), in isp_make_here()
2615 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_gone() local
2617 if (xpt_create_path(&tp, NULL, cam_sim_path(fc->sim), tgt, CAM_LUN_WILDCARD) == CAM_REQ_CMP) { in isp_make_gone()
2636 struct isp_fc *fc = arg; in isp_gdt() local
2637 taskqueue_enqueue(taskqueue_thread, &fc->gtask); in isp_gdt()
2643 struct isp_fc *fc = arg; in isp_gdt_task() local
2644 ispsoftc_t *isp = fc->isp; in isp_gdt_task()
2645 int chan = fc - isp->isp_osinfo.pc.fc; in isp_gdt_task()
2677 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_gdt_task()
2681 if (fc->ready) { in isp_gdt_task()
2683 callout_reset(&fc->gdt, hz, isp_gdt, fc); in isp_gdt_task()
2685 callout_deactivate(&fc->gdt); in isp_gdt_task()
2705 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_changed() local
2707 if (fc->loop_down_time) in isp_loop_changed()
2712 fc->loop_down_time = time_uptime; in isp_loop_changed()
2713 wakeup(fc); in isp_loop_changed()
2719 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_up() local
2722 fc->loop_seen_once = 1; in isp_loop_up()
2723 fc->loop_down_time = 0; in isp_loop_up()
2731 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_dead() local
2797 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_loop_dead()
2802 fc->loop_down_time = 0; in isp_loop_dead()
2808 struct isp_fc *fc = arg; in isp_kthread() local
2809 ispsoftc_t *isp = fc->isp; in isp_kthread()
2810 int chan = fc - isp->isp_osinfo.pc.fc; in isp_kthread()
2840 if (fc->loop_seen_once == 0) in isp_kthread()
2843 lim = fc->loop_down_limit; in isp_kthread()
2844 d = time_uptime - fc->loop_down_time; in isp_kthread()
2868 msleep(fc, &isp->isp_lock, PRIBIO, "ispf", slp * hz); in isp_kthread()
2870 fc->num_threads -= 1; in isp_kthread()
3264 struct ccb_trans_settings_fc *fc = &cts->xport_specific.fc; in isp_action() local
3273 fc->valid = CTS_FC_VALID_SPEED; in isp_action()
3274 fc->bitrate = 100000; in isp_action()
3275 fc->bitrate *= fcp->isp_gbspeed; in isp_action()
3278 fc->wwnn = lp->node_wwn; in isp_action()
3279 fc->wwpn = lp->port_wwn; in isp_action()
3280 fc->port = lp->portid; in isp_action()
3281 fc->valid |= CTS_FC_VALID_WWNN | CTS_FC_VALID_WWPN | CTS_FC_VALID_PORT; in isp_action()
3385 if (kp->xport_specific.fc.valid & KNOB_VALID_ADDRESS) { in isp_action()
3386 fcp->isp_wwnn = ISP_FC_PC(isp, bus)->def_wwnn = kp->xport_specific.fc.wwnn; in isp_action()
3387 fcp->isp_wwpn = ISP_FC_PC(isp, bus)->def_wwpn = kp->xport_specific.fc.wwpn; in isp_action()
3391 if (kp->xport_specific.fc.valid & KNOB_VALID_ROLE) { in isp_action()
3395 switch (kp->xport_specific.fc.role) { in isp_action()
3444 kp->xport_specific.fc.wwnn = fcp->isp_wwnn; in isp_action()
3445 kp->xport_specific.fc.wwpn = fcp->isp_wwpn; in isp_action()
3448 kp->xport_specific.fc.role = KNOB_ROLE_NONE; in isp_action()
3451 kp->xport_specific.fc.role = KNOB_ROLE_TARGET; in isp_action()
3454 kp->xport_specific.fc.role = KNOB_ROLE_INITIATOR; in isp_action()
3457 kp->xport_specific.fc.role = KNOB_ROLE_BOTH; in isp_action()
3460 kp->xport_specific.fc.valid = KNOB_VALID_ADDRESS | KNOB_VALID_ROLE; in isp_action()
3516 cpi->xport_specific.fc.wwnn = fcp->isp_wwnn; in isp_action()
3517 cpi->xport_specific.fc.wwpn = fcp->isp_wwpn; in isp_action()
3518 cpi->xport_specific.fc.port = fcp->isp_portid; in isp_action()
3519 cpi->xport_specific.fc.bitrate = fcp->isp_gbspeed * 1000; in isp_action()
3589 struct isp_fc *fc; in isp_async() local
3714 fc = ISP_FC_PC(isp, bus); in isp_async()
3733 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_async()
3746 fc = ISP_FC_PC(isp, bus); in isp_async()
3782 xpt_async(AC_CONTRACT, fc->path, &ac); in isp_async()
3796 fc = ISP_FC_PC(isp, bus); in isp_async()
3805 lp->gone_timer = fc->gone_device_time; in isp_async()
3807 if (fc->ready && !callout_active(&fc->gdt)) { in isp_async()
3809 callout_reset(&fc->gdt, hz, isp_gdt, fc); in isp_async()
4011 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_default_wwn() local
4014 seed = iswwnn ? fc->def_wwnn : fc->def_wwpn; in isp_default_wwn()
4164 if (isp->isp_osinfo.pc.fc[chan].fcbsy) { in isp_fc_scratch_acquire()
4167 isp->isp_osinfo.pc.fc[chan].fcbsy = 1; in isp_fc_scratch_acquire()
4229 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_fcp_reset_crn() local
4241 for (nxp = fc->nexus_hash[i]; nxp != NULL; nxp = nxp->next) { in isp_fcp_reset_crn()
4253 struct isp_fc *fc; in isp_fcp_next_crn() local
4263 fc = &isp->isp_osinfo.pc.fc[chan]; in isp_fcp_next_crn()
4265 nxp = fc->nexus_hash[idx]; in isp_fcp_next_crn()
4273 nxp = fc->nexus_free_list; in isp_fcp_next_crn()
4280 fc->nexus_free_list = nxp->next; in isp_fcp_next_crn()
4284 nxp->next = fc->nexus_hash[idx]; in isp_fcp_next_crn()
4285 fc->nexus_hash[idx] = nxp; in isp_fcp_next_crn()