Lines Matching refs:isp

47 MODULE_VERSION(isp, 1);
48 MODULE_DEPEND(isp, cam, 1, 1, 1);
56 static void isp_loop_changed(ispsoftc_t *isp, int chan);
77 ispsoftc_t *isp = (ispsoftc_t *)arg1; in isp_role_sysctl() local
81 value = FCPARAM(isp, chan)->role; in isp_role_sysctl()
90 ISP_LOCK(isp); in isp_role_sysctl()
91 old = FCPARAM(isp, chan)->role; in isp_role_sysctl()
98 ISP_UNLOCK(isp); in isp_role_sysctl()
103 error = isp_control(isp, ISPCTL_CHANGE_ROLE, chan, value); in isp_role_sysctl()
104 ISP_UNLOCK(isp); in isp_role_sysctl()
109 isp_attach_chan(ispsoftc_t *isp, struct cam_devq *devq, int chan) in isp_attach_chan() argument
118 sim = cam_sim_alloc(isp_action, isp_poll, "isp", isp, in isp_attach_chan()
119 device_get_unit(isp->isp_dev), &isp->isp_lock, in isp_attach_chan()
120 isp->isp_maxcmds, isp->isp_maxcmds, devq); in isp_attach_chan()
124 ISP_LOCK(isp); in isp_attach_chan()
125 if (xpt_bus_register(sim, isp->isp_dev, chan) != CAM_SUCCESS) { in isp_attach_chan()
126 ISP_UNLOCK(isp); in isp_attach_chan()
130 ISP_UNLOCK(isp); in isp_attach_chan()
132 ISP_LOCK(isp); in isp_attach_chan()
134 ISP_UNLOCK(isp); in isp_attach_chan()
144 ISP_LOCK(isp); in isp_attach_chan()
146 ISP_UNLOCK(isp); in isp_attach_chan()
148 if (IS_SCSI(isp)) { in isp_attach_chan()
149 struct isp_spi *spi = ISP_SPI_PC(isp, chan); in isp_attach_chan()
164 fcparam *fcp = FCPARAM(isp, chan); in isp_attach_chan()
165 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_attach_chan()
166 struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(isp->isp_osinfo.dev); in isp_attach_chan()
167 struct sysctl_oid *tree = device_get_sysctl_tree(isp->isp_osinfo.dev); in isp_attach_chan()
170 ISP_LOCK(isp); in isp_attach_chan()
173 fc->isp = isp; in isp_attach_chan()
178 callout_init_mtx(&fc->gdt, &isp->isp_lock, 0); in isp_attach_chan()
191 isp_loop_changed(isp, chan); in isp_attach_chan()
192 ISP_UNLOCK(isp); in isp_attach_chan()
194 "%s_%d", device_get_nameunit(isp->isp_osinfo.dev), chan)) { in isp_attach_chan()
196 ISP_LOCK(isp); in isp_attach_chan()
198 ISP_UNLOCK(isp); in isp_attach_chan()
226 "role", CTLTYPE_INT | CTLFLAG_RW, isp, chan, in isp_attach_chan()
254 isp_detach_chan(ispsoftc_t *isp, int chan) in isp_detach_chan() argument
261 ISP_GET_PC(isp, chan, sim, sim); in isp_detach_chan()
262 ISP_GET_PC(isp, chan, path, path); in isp_detach_chan()
263 ISP_GET_PC_ADDR(isp, chan, num_threads, num_threads); in isp_detach_chan()
276 wakeup(isp->isp_osinfo.pc.ptr); in isp_detach_chan()
278 mtx_sleep(isp, &isp->isp_lock, PRIBIO, "isp_reap", 100); in isp_detach_chan()
282 isp_attach(ispsoftc_t *isp) in isp_attach() argument
284 const char *nu = device_get_nameunit(isp->isp_osinfo.dev); in isp_attach()
285 int du = device_get_unit(isp->isp_dev); in isp_attach()
291 isp->isp_osinfo.devq = cam_simq_alloc(isp->isp_maxcmds); in isp_attach()
292 if (isp->isp_osinfo.devq == NULL) { in isp_attach()
296 for (chan = 0; chan < isp->isp_nchan; chan++) { in isp_attach()
297 if (isp_attach_chan(isp, isp->isp_osinfo.devq, chan)) { in isp_attach()
302 callout_init_mtx(&isp->isp_osinfo.tmo, &isp->isp_lock, 0); in isp_attach()
304 callout_reset(&isp->isp_osinfo.tmo, isp_timer_count, isp_timer, isp); in isp_attach()
306 isp->isp_osinfo.cdev = make_dev(&isp_cdevsw, du, UID_ROOT, GID_OPERATOR, 0600, "%s", nu); in isp_attach()
307 if (isp->isp_osinfo.cdev) { in isp_attach()
308 isp->isp_osinfo.cdev->si_drv1 = isp; in isp_attach()
317 ISP_GET_PC(isp, chan, sim, sim); in isp_attach()
318 ISP_GET_PC(isp, chan, path, path); in isp_attach()
320 ISP_LOCK(isp); in isp_attach()
322 ISP_UNLOCK(isp); in isp_attach()
325 cam_simq_free(isp->isp_osinfo.devq); in isp_attach()
326 isp->isp_osinfo.devq = NULL; in isp_attach()
331 isp_detach(ispsoftc_t *isp) in isp_detach() argument
335 if (isp->isp_osinfo.cdev) { in isp_detach()
336 destroy_dev(isp->isp_osinfo.cdev); in isp_detach()
337 isp->isp_osinfo.cdev = NULL; in isp_detach()
339 ISP_LOCK(isp); in isp_detach()
341 isp->isp_osinfo.is_exiting = 1; in isp_detach()
342 for (chan = isp->isp_nchan - 1; chan >= 0; chan -= 1) in isp_detach()
343 isp_detach_chan(isp, chan); in isp_detach()
344 ISP_UNLOCK(isp); in isp_detach()
345 callout_drain(&isp->isp_osinfo.tmo); in isp_detach()
346 cam_simq_free(isp->isp_osinfo.devq); in isp_detach()
351 isp_freeze_loopdown(ispsoftc_t *isp, int chan) in isp_freeze_loopdown() argument
353 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_freeze_loopdown()
358 isp_prt(isp, ISP_LOGDEBUG0, in isp_freeze_loopdown()
364 isp_prt(isp, ISP_LOGDEBUG0, in isp_freeze_loopdown()
371 isp_unfreeze_loopdown(ispsoftc_t *isp, int chan) in isp_unfreeze_loopdown() argument
373 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_unfreeze_loopdown()
380 isp_prt(isp, ISP_LOGDEBUG0, in isp_unfreeze_loopdown()
390 ispsoftc_t *isp; in ispioctl() local
393 isp = dev->si_drv1; in ispioctl()
398 int olddblev = isp->isp_dblev; in ispioctl()
399 isp->isp_dblev = *(int *)addr; in ispioctl()
406 if (chan < 0 || chan >= isp->isp_nchan) { in ispioctl()
410 if (IS_FC(isp)) { in ispioctl()
411 *(int *)addr = FCPARAM(isp, chan)->role; in ispioctl()
418 if (IS_SCSI(isp)) in ispioctl()
422 if (chan < 0 || chan >= isp->isp_nchan) { in ispioctl()
431 ISP_LOCK(isp); in ispioctl()
432 *(int *)addr = FCPARAM(isp, chan)->role; in ispioctl()
433 retval = isp_control(isp, ISPCTL_CHANGE_ROLE, chan, nr); in ispioctl()
434 ISP_UNLOCK(isp); in ispioctl()
439 ISP_LOCK(isp); in ispioctl()
440 isp_reinit(isp, 0); in ispioctl()
441 ISP_UNLOCK(isp); in ispioctl()
446 if (IS_FC(isp)) { in ispioctl()
448 if (chan < 0 || chan >= isp->isp_nchan) { in ispioctl()
452 ISP_LOCK(isp); in ispioctl()
453 if (isp_fc_runstate(isp, chan, 5 * 1000000) != LOOP_READY) { in ispioctl()
458 ISP_UNLOCK(isp); in ispioctl()
463 if (IS_FC(isp)) { in ispioctl()
465 if (chan < 0 || chan >= isp->isp_nchan) { in ispioctl()
469 ISP_LOCK(isp); in ispioctl()
470 if (isp_control(isp, ISPCTL_SEND_LIP, chan)) { in ispioctl()
475 ISP_UNLOCK(isp); in ispioctl()
483 if (IS_SCSI(isp)) { in ispioctl()
490 lp = &FCPARAM(isp, ifc->chan)->portdb[ifc->loopid]; in ispioctl()
508 if (chan < 0 || chan >= isp->isp_nchan) { in ispioctl()
512 hba->fc_fw_major = ISP_FW_MAJORX(isp->isp_fwrev); in ispioctl()
513 hba->fc_fw_minor = ISP_FW_MINORX(isp->isp_fwrev); in ispioctl()
514 hba->fc_fw_micro = ISP_FW_MICROX(isp->isp_fwrev); in ispioctl()
515 hba->fc_nchannels = isp->isp_nchan; in ispioctl()
516 if (IS_FC(isp)) { in ispioctl()
518 hba->fc_speed = FCPARAM(isp, hba->fc_channel)->isp_gbspeed; in ispioctl()
519 hba->fc_topology = FCPARAM(isp, chan)->isp_topo + 1; in ispioctl()
520 hba->fc_loopid = FCPARAM(isp, chan)->isp_loopid; in ispioctl()
521 hba->nvram_node_wwn = FCPARAM(isp, chan)->isp_wwnn_nvram; in ispioctl()
522 hba->nvram_port_wwn = FCPARAM(isp, chan)->isp_wwpn_nvram; in ispioctl()
523 hba->active_node_wwn = FCPARAM(isp, chan)->isp_wwnn; in ispioctl()
524 hba->active_port_wwn = FCPARAM(isp, chan)->isp_wwpn; in ispioctl()
544 if (IS_SCSI(isp)) { in ispioctl()
549 if (chan < 0 || chan >= isp->isp_nchan) { in ispioctl()
556 ISP_LOCK(isp); in ispioctl()
557 if (IS_24XX(isp)) { in ispioctl()
562 fcparam *fcp = FCPARAM(isp, chan); in ispioctl()
574 ISP_UNLOCK(isp); in ispioctl()
585 tmf.tmf_vpidx = ISP_GET_VPIDX(isp, chan); in ispioctl()
615 ISP_UNLOCK(isp); in ispioctl()
621 tmf.tmf_handle = isp_allocate_handle(isp, resp, in ispioctl()
624 isp_prt(isp, ISP_LOGERR, in ispioctl()
627 ISP_UNLOCK(isp); in ispioctl()
633 reqp = isp_getrqentry(isp); in ispioctl()
635 isp_prt(isp, ISP_LOGERR, in ispioctl()
638 isp_destroy_handle(isp, tmf.tmf_handle); in ispioctl()
639 ISP_UNLOCK(isp); in ispioctl()
643 isp_put_24xx_tmf(isp, &tmf, (isp24xx_tmf_t *)reqp); in ispioctl()
644 if (isp->isp_dblev & ISP_LOGDEBUG1) in ispioctl()
645 isp_print_bytes(isp, "IOCB TMF", QENTRY_LEN, reqp); in ispioctl()
646 ISP_SYNC_REQUEST(isp); in ispioctl()
647 if (msleep(resp, &isp->isp_lock, 0, "TMF", 5*hz) == EWOULDBLOCK) { in ispioctl()
648 isp_prt(isp, ISP_LOGERR, in ispioctl()
651 isp_destroy_handle(isp, tmf.tmf_handle); in ispioctl()
652 ISP_UNLOCK(isp); in ispioctl()
656 if (isp->isp_dblev & ISP_LOGDEBUG1) in ispioctl()
657 isp_print_bytes(isp, "IOCB TMF response", QENTRY_LEN, resp); in ispioctl()
658 isp_get_24xx_response(isp, (isp24xx_statusreq_t *)resp, &sp); in ispioctl()
666 if (ISP_CAP_2KLOGIN(isp) == 0) { in ispioctl()
704 FCPARAM(isp, chan)->sendmarker = 1; in ispioctl()
706 retval = isp_control(isp, ISPCTL_RUN_MBOXCMD, &mbs); in ispioctl()
712 ISP_UNLOCK(isp); in ispioctl()
729 isp_get_pcmd(ispsoftc_t *isp, union ccb *ccb) in isp_get_pcmd() argument
731 ISP_PCMD(ccb) = isp->isp_osinfo.pcmd_free; in isp_get_pcmd()
735 isp->isp_osinfo.pcmd_free = ((struct isp_pcmd *)ISP_PCMD(ccb))->next; in isp_get_pcmd()
740 isp_free_pcmd(ispsoftc_t *isp, union ccb *ccb) in isp_free_pcmd() argument
746 PISP_PCMD(ccb)->next = isp->isp_osinfo.pcmd_free; in isp_free_pcmd()
747 isp->isp_osinfo.pcmd_free = ISP_PCMD(ccb); in isp_free_pcmd()
781 get_lun_statep(ispsoftc_t *isp, int bus, lun_id_t lun) in get_lun_statep() argument
786 if (bus < isp->isp_nchan) { in get_lun_statep()
787 ISP_GET_PC_ADDR(isp, bus, lun_hash[LUN_HASH_FUNC(lun)], lhp); in get_lun_statep()
797 isp_atio_restart(ispsoftc_t *isp, int bus, tstate_t *tptr) in isp_atio_restart() argument
808 if (IS_24XX(isp)) { in isp_atio_restart()
809 isp_prt(isp, ISP_LOGTDEBUG0, in isp_atio_restart()
812 isp_handle_platform_atio7(isp, (at7_entry_t *) ntp->data); in isp_atio_restart()
814 isp_prt(isp, ISP_LOGTDEBUG0, in isp_atio_restart()
817 isp_handle_platform_atio2(isp, (at2_entry_t *) ntp->data); in isp_atio_restart()
819 isp_put_ntpd(isp, bus, ntp); in isp_atio_restart()
831 isp_tmcmd_restart(ispsoftc_t *isp) in isp_tmcmd_restart() argument
839 for (bus = 0; bus < isp->isp_nchan; bus++) { in isp_tmcmd_restart()
841 ISP_GET_PC_ADDR(isp, bus, lun_hash[i], lhp); in isp_tmcmd_restart()
843 isp_atio_restart(isp, bus, tptr); in isp_tmcmd_restart()
849 ISP_GET_PC_ADDR(isp, bus, waitq, waitq); in isp_tmcmd_restart()
853 isp_target_start_ctio(isp, ccb, FROM_TIMER); in isp_tmcmd_restart()
859 isp_get_atpd(ispsoftc_t *isp, int chan, uint32_t tag) in isp_get_atpd() argument
865 ISP_GET_PC_ADDR(isp, chan, atfree, atfree); in isp_get_atpd()
870 ISP_GET_PC(isp, chan, atused, atused); in isp_get_atpd()
877 isp_find_atpd(ispsoftc_t *isp, int chan, uint32_t tag) in isp_find_atpd() argument
882 ISP_GET_PC(isp, chan, atused, atused); in isp_find_atpd()
891 isp_put_atpd(ispsoftc_t *isp, int chan, atio_private_data_t *atp) in isp_put_atpd() argument
896 isp_put_ecmd(isp, atp->ests); in isp_put_atpd()
900 ISP_GET_PC_ADDR(isp, chan, atfree, atfree); in isp_put_atpd()
905 isp_dump_atpd(ispsoftc_t *isp, int chan) in isp_dump_atpd() argument
910 ISP_GET_PC(isp, chan, atpool, atpool); in isp_dump_atpd()
914 …isp_prt(isp, ISP_LOGALL, "Chan %d ATP [0x%x] origdlen %u bytes_xfrd %u lun %jx nphdl 0x%04x s_id 0… in isp_dump_atpd()
920 isp_get_ntpd(ispsoftc_t *isp, int chan) in isp_get_ntpd() argument
925 ISP_GET_PC_ADDR(isp, chan, ntfree, ntfree); in isp_get_ntpd()
933 isp_find_ntpd(ispsoftc_t *isp, int chan, uint32_t tag_id, uint32_t seq_id) in isp_find_ntpd() argument
937 ISP_GET_PC(isp, chan, ntpool, ntp); in isp_find_ntpd()
938 ISP_GET_PC_ADDR(isp, chan, ntpool[ATPDPSIZE], ntp2); in isp_find_ntpd()
947 isp_put_ntpd(ispsoftc_t *isp, int chan, inot_private_data_t *ntp) in isp_put_ntpd() argument
952 ISP_GET_PC_ADDR(isp, chan, ntfree, ntfree); in isp_put_ntpd()
957 create_lun_state(ispsoftc_t *isp, int bus, struct cam_path *path, tstate_t **rslt) in create_lun_state() argument
965 if (ISP_MAX_LUNS(isp) > 0 && lun >= ISP_MAX_LUNS(isp)) { in create_lun_state()
977 ISP_GET_PC_ADDR(isp, bus, lun_hash[LUN_HASH_FUNC(lun)], lhp); in create_lun_state()
980 ISP_PATH_PRT(isp, ISP_LOGTDEBUG0, path, "created tstate\n"); in create_lun_state()
985 destroy_lun_state(ispsoftc_t *isp, int bus, tstate_t *tptr) in destroy_lun_state() argument
1002 isp_endcmd(isp, ntp->data, NIL_HANDLE, bus, SCSI_STATUS_BUSY, 0); in destroy_lun_state()
1004 isp_put_ntpd(isp, bus, ntp); in destroy_lun_state()
1006 ISP_GET_PC_ADDR(isp, bus, lun_hash[LUN_HASH_FUNC(tptr->ts_lun)], lhp); in destroy_lun_state()
1012 isp_enable_lun(ispsoftc_t *isp, union ccb *ccb) in isp_enable_lun() argument
1019 if (!IS_FC(isp) || !ISP_CAP_TMODE(isp) || !ISP_CAP_SCCFW(isp)) { in isp_enable_lun()
1033 ISP_PATH_PRT(isp, ISP_LOGTDEBUG0|ISP_LOGCONFIG, ccb->ccb_h.path, in isp_enable_lun()
1042 tptr = get_lun_statep(isp, bus, lun); in isp_enable_lun()
1048 ccb->ccb_h.status = create_lun_state(isp, bus, ccb->ccb_h.path, &tptr); in isp_enable_lun()
1059 isp_disable_lun(ispsoftc_t *isp, union ccb *ccb) in isp_disable_lun() argument
1069 ISP_PATH_PRT(isp, ISP_LOGTDEBUG0|ISP_LOGCONFIG, ccb->ccb_h.path, in isp_disable_lun()
1078 if ((tptr = get_lun_statep(isp, bus, lun)) == NULL) { in isp_disable_lun()
1084 destroy_lun_state(isp, bus, tptr); in isp_disable_lun()
1090 isp_target_start_ctio(ispsoftc_t *isp, union ccb *ccb, enum Start_Ctio_How how) in isp_target_start_ctio() argument
1100 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: ENTRY[0x%x] how %u xfrlen %u sendstatus %d sense_len %u", __func… in isp_target_start_ctio()
1103 ISP_GET_PC_ADDR(isp, XS_CHANNEL(ccb), waitq, waitq); in isp_target_start_ctio()
1125 …ISP_PATH_PRT(isp, ISP_LOGERR, ccb->ccb_h.path, "a data transfer length of zero but no status to se… in isp_target_start_ctio()
1132 atp = isp_find_atpd(isp, XS_CHANNEL(ccb), cso->tag_id); in isp_target_start_ctio()
1134 …isp_prt(isp, ISP_LOGERR, "%s: [0x%x] cannot find private data adjunct in %s", __func__, cso->tag_i… in isp_target_start_ctio()
1135 isp_dump_atpd(isp, XS_CHANNEL(ccb)); in isp_target_start_ctio()
1145 …isp_prt(isp, ISP_LOGERR, "%s: [0x%x] not sending a CTIO for a dead command", __func__, cso->tag_id… in isp_target_start_ctio()
1154 fcp = FCPARAM(isp, XS_CHANNEL(ccb)); in isp_target_start_ctio()
1156 …isp_prt(isp, ISP_LOGERR, "%s: [0x%x] stopping sending a CTIO because we're no longer in target mod… in isp_target_start_ctio()
1167 …isp_prt(isp, ISP_LOGTINFO, "[0x%x] handling only %d CCBs at a time (flags for this ccb: 0x%x)", cs… in isp_target_start_ctio()
1186 isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] now sending synthesized status orig_dl=%u xfered=%u bit=%u", in isp_target_start_ctio()
1223 isp_prt(isp, ISP_LOGERR, in isp_target_start_ctio()
1240 if (IS_24XX(isp)) { in isp_target_start_ctio()
1252 cto->ct_vpidx = ISP_GET_VPIDX(isp, XS_CHANNEL(ccb)); in isp_target_start_ctio()
1291 atp->ests = isp_get_ecmd(isp); in isp_target_start_ctio()
1316 isp_put_fcp_rsp_iu(isp, rp, atp->ests); in isp_target_start_ctio()
1319 isp_put_fcp_rsp_iu(isp, rp, atp->ests); in isp_target_start_ctio()
1321 if (isp->isp_dblev & ISP_LOGTDEBUG1) { in isp_target_start_ctio()
1322 …isp_print_bytes(isp, "FCP Response Frame After Swizzling", MIN_FCP_RESPONSE_SIZE + sense_length, a… in isp_target_start_ctio()
1324 addr = isp->isp_osinfo.ecmd_dma; in isp_target_start_ctio()
1325 addr += ((((isp_ecmd_t *)atp->ests) - isp->isp_osinfo.ecmd_base) * XCMD_SIZE); in isp_target_start_ctio()
1326 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: ests base %p vaddr %p ecmd_dma %jx addr %jx len %u", __func__, i… in isp_target_start_ctio()
1327 … (uintmax_t) isp->isp_osinfo.ecmd_dma, (uintmax_t)addr, MIN_FCP_RESPONSE_SIZE + sense_length); in isp_target_start_ctio()
1334 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: CTIO7[0x%x] seq %u nc %d CDB0=%x sstatus=0x%x flags=0x%x resid=%… in isp_target_start_ctio()
1338 …isp_prt(isp, ISP_LOGDEBUG0, "%s: CTIO7[0x%x] seq %u nc %d CDB0=%x sstatus=0x%x flags=0x%x resid=%d… in isp_target_start_ctio()
1359 …if (ISP_FC_PC(isp, XS_CHANNEL(ccb))->inject_lost_data_frame && xfrlen > ISP_FC_PC(isp, XS_CHANNEL(… in isp_target_start_ctio()
1360 …isp_prt(isp, ISP_LOGWARN, "%s: truncating data frame with xfrlen %d to %d", __func__, xfrlen, xfrl… in isp_target_start_ctio()
1361 ISP_FC_PC(isp, XS_CHANNEL(ccb))->inject_lost_data_frame = 0; in isp_target_start_ctio()
1381 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: CTIO7[0x%x] seq %u nc %d CDB0=%x sstatus=0x%x flags=0x%x xfrlen=… in isp_target_start_ctio()
1391 if (ISP_CAP_2KLOGIN(isp)) { in isp_target_start_ctio()
1395 if (ISP_CAP_SCCFW(isp) == 0) { in isp_target_start_ctio()
1443 atp->ests = isp_get_ecmd(isp); in isp_target_start_ctio()
1467 isp_put_fcp_rsp_iu(isp, rp, atp->ests); in isp_target_start_ctio()
1470 isp_put_fcp_rsp_iu(isp, rp, atp->ests); in isp_target_start_ctio()
1472 if (isp->isp_dblev & ISP_LOGTDEBUG1) { in isp_target_start_ctio()
1473 …isp_print_bytes(isp, "FCP Response Frame After Swizzling", MIN_FCP_RESPONSE_SIZE + sense_length, a… in isp_target_start_ctio()
1475 addr = isp->isp_osinfo.ecmd_dma; in isp_target_start_ctio()
1476 addr += ((((isp_ecmd_t *)atp->ests) - isp->isp_osinfo.ecmd_base) * XCMD_SIZE); in isp_target_start_ctio()
1477 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: ests base %p vaddr %p ecmd_dma %jx addr %jx len %u", __func__, i… in isp_target_start_ctio()
1478 … (uintmax_t) isp->isp_osinfo.ecmd_dma, (uintmax_t)addr, MIN_FCP_RESPONSE_SIZE + sense_length); in isp_target_start_ctio()
1484 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: CTIO2[0x%x] seq %u nc %d CDB0=%x sstatus=0x%x flags=0x%x resid=%… in isp_target_start_ctio()
1488 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: CTIO2[0x%x] seq %u nc %d CDB0=%x sstatus=0x%x flags=0x%x resid=%… in isp_target_start_ctio()
1522 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: CTIO2[%x] seq %u nc %d CDB0=%x scsi status %x flags %x resid %d … in isp_target_start_ctio()
1526 if (isp_get_pcmd(isp, ccb)) { in isp_target_start_ctio()
1527 ISP_PATH_PRT(isp, ISP_LOGWARN, ccb->ccb_h.path, "out of PCMDs\n"); in isp_target_start_ctio()
1531 handle = isp_allocate_handle(isp, ccb, ISP_HANDLE_TARGET); in isp_target_start_ctio()
1533 ISP_PATH_PRT(isp, ISP_LOGWARN, ccb->ccb_h.path, "No XFLIST pointers for %s\n", __func__); in isp_target_start_ctio()
1535 isp_free_pcmd(isp, ccb); in isp_target_start_ctio()
1551 if (IS_24XX(isp)) { in isp_target_start_ctio()
1559 dmaresult = ISP_DMASETUP(isp, cso, (ispreq_t *) local); in isp_target_start_ctio()
1561 isp_destroy_handle(isp, handle); in isp_target_start_ctio()
1562 isp_free_pcmd(isp, ccb); in isp_target_start_ctio()
1595 ispsoftc_t *isp = tp->isp; in isp_refire_notify_ack() local
1597 ISP_ASSERT_LOCKED(isp); in isp_refire_notify_ack()
1598 if (isp_notify_ack(isp, tp->not)) { in isp_refire_notify_ack()
1609 ispsoftc_t *isp = XS_ISP(ccb); in isp_target_putback_atio() local
1616 if (ISP_CAP_SCCFW(isp)) { in isp_target_putback_atio()
1624 if (isp_target_put_entry(isp, at)) { in isp_target_putback_atio()
1641 isp_handle_platform_atio2(ispsoftc_t *isp, at2_entry_t *aep) in isp_handle_platform_atio2() argument
1659 isp_prt(isp, ISP_LOGWARN, "bogus atio (0x%x) leaked to platform", aep->at_status); in isp_handle_platform_atio2()
1660 isp_endcmd(isp, aep, NIL_HANDLE, 0, SCSI_STATUS_BUSY, 0); in isp_handle_platform_atio2()
1664 fcp = FCPARAM(isp, 0); in isp_handle_platform_atio2()
1665 if (ISP_CAP_SCCFW(isp)) { in isp_handle_platform_atio2()
1670 if (ISP_CAP_2KLOGIN(isp)) { in isp_handle_platform_atio2()
1675 tptr = get_lun_statep(isp, 0, lun); in isp_handle_platform_atio2()
1677 tptr = get_lun_statep(isp, 0, CAM_LUN_WILDCARD); in isp_handle_platform_atio2()
1679 …isp_prt(isp, ISP_LOGWARN, "%s: [0x%x] no state pointer for lun %jx or wildcard", __func__, aep->at… in isp_handle_platform_atio2()
1681 isp_endcmd(isp, aep, nphdl, 0, SCSI_STATUS_BUSY, 0); in isp_handle_platform_atio2()
1683 …isp_endcmd(isp, aep, nphdl, 0, SCSI_STATUS_CHECK_COND | ECMD_SVALID | (0x5 << 12) | (0x25 << 16), … in isp_handle_platform_atio2()
1692 if (isp_atio_restart(isp, 0, tptr)) in isp_handle_platform_atio2()
1700 atp = isp_get_atpd(isp, 0, aep->at_rxid); in isp_handle_platform_atio2()
1707 ISP_PATH_PRT(isp, ISP_LOGTDEBUG2, atiop->ccb_h.path, "Take FREE ATIO\n"); in isp_handle_platform_atio2()
1708 atiop->ccb_h.target_id = ISP_MAX_TARGETS(isp); in isp_handle_platform_atio2()
1719 if (IS_2100(isp)) in isp_handle_platform_atio2()
1722 if (isp_find_pdb_by_handle(isp, 0, nphdl, &lp)) { in isp_handle_platform_atio2()
1723 atiop->init_id = FC_PORTDB_TGT(isp, 0, lp); in isp_handle_platform_atio2()
1725 isp_prt(isp, ISP_LOGTINFO, "%s: port %x isn't in PDB", in isp_handle_platform_atio2()
1727 isp_dump_portdb(isp, 0); in isp_handle_platform_atio2()
1728 isp_endcmd(isp, aep, NIL_HANDLE, 0, ECMD_TERMINATE, 0); in isp_handle_platform_atio2()
1766 …isp_prt(isp, ISP_LOGTDEBUG0, "ATIO2[0x%x] CDB=0x%x lun %jx datalen %u", aep->at_rxid, atp->cdb0, (… in isp_handle_platform_atio2()
1769 ntp = isp_get_ntpd(isp, 0); in isp_handle_platform_atio2()
1771 isp_endcmd(isp, aep, nphdl, 0, SCSI_STATUS_BUSY, 0); in isp_handle_platform_atio2()
1779 isp_handle_platform_atio7(ispsoftc_t *isp, at7_entry_t *aep) in isp_handle_platform_atio7() argument
1796 if (ISP_CAP_MULTI_ID(isp) && isp->isp_nchan > 1) { in isp_handle_platform_atio7()
1798 isp_find_chan_by_did(isp, did, &chan); in isp_handle_platform_atio7()
1800 isp_prt(isp, ISP_LOGWARN, in isp_handle_platform_atio7()
1803 isp_endcmd(isp, aep, NIL_HANDLE, ISP_NOCHAN, in isp_handle_platform_atio7()
1814 if (isp_find_pdb_by_portid(isp, chan, sid, &lp) == 0) { in isp_handle_platform_atio7()
1818 …isp_prt(isp, ISP_LOGTINFO, "%s: [RX_ID 0x%x] D_ID 0x%06x found on Chan %d for S_ID 0x%06x wasn't i… in isp_handle_platform_atio7()
1820 isp_dump_portdb(isp, chan); in isp_handle_platform_atio7()
1821 isp_endcmd(isp, aep, NIL_HANDLE, chan, ECMD_TERMINATE, 0); in isp_handle_platform_atio7()
1829 tptr = get_lun_statep(isp, chan, lun); in isp_handle_platform_atio7()
1831 tptr = get_lun_statep(isp, chan, CAM_LUN_WILDCARD); in isp_handle_platform_atio7()
1833 isp_prt(isp, ISP_LOGWARN, in isp_handle_platform_atio7()
1837 isp_endcmd(isp, aep, nphdl, chan, SCSI_STATUS_BUSY, 0); in isp_handle_platform_atio7()
1839 …isp_endcmd(isp, aep, nphdl, chan, SCSI_STATUS_CHECK_COND | ECMD_SVALID | (0x5 << 12) | (0x25 << 16… in isp_handle_platform_atio7()
1848 if (isp_atio_restart(isp, chan, tptr)) in isp_handle_platform_atio7()
1855 isp_endcmd(isp, aep, nphdl, chan, SCSI_BUSY, 0); in isp_handle_platform_atio7()
1864 isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] out of atios", aep->at_rxid); in isp_handle_platform_atio7()
1868 oatp = isp_find_atpd(isp, chan, aep->at_rxid); in isp_handle_platform_atio7()
1870 …isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] tag wraparound in isp_handle_platforms_atio7 (N-Port Handle 0… in isp_handle_platform_atio7()
1877 atp = isp_get_atpd(isp, chan, aep->at_rxid); in isp_handle_platform_atio7()
1879 isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] out of atps", aep->at_rxid); in isp_handle_platform_atio7()
1885 ISP_PATH_PRT(isp, ISP_LOGTDEBUG2, atiop->ccb_h.path, "Take FREE ATIO\n"); in isp_handle_platform_atio7()
1886 atiop->init_id = FC_PORTDB_TGT(isp, chan, lp); in isp_handle_platform_atio7()
1887 atiop->ccb_h.target_id = ISP_MAX_TARGETS(isp); in isp_handle_platform_atio7()
1892 isp_prt(isp, ISP_LOGWARN, "additional CDBLEN ignored"); in isp_handle_platform_atio7()
1930 isp_prt(isp, ISP_LOGTDEBUG0, "ATIO7[0x%x] CDB=0x%x lun %jx datalen %u", in isp_handle_platform_atio7()
1936 isp_put_atpd(isp, chan, atp); in isp_handle_platform_atio7()
1937 ntp = isp_get_ntpd(isp, chan); in isp_handle_platform_atio7()
1939 isp_endcmd(isp, aep, nphdl, chan, SCSI_STATUS_BUSY, 0); in isp_handle_platform_atio7()
1954 isp_handle_srr_start(ispsoftc_t *isp, atio_private_data_t *atp) in isp_handle_srr_start() argument
1966 isp_prt(isp, ISP_LOGWARN, "SRR[0x%x] null ccb", atp->tag); in isp_handle_srr_start()
1982 …isp_prt(isp, ISP_LOGWARN, "SRR[0x%x] SRR offset 0x%x but current CCB doesn't transfer data", atp->… in isp_handle_srr_start()
1986 …isp_prt(isp, ISP_LOGWARN, "SRR[0x%x] SRR offset 0x%x not covered by current CCB data range [0x%x..… in isp_handle_srr_start()
1989 …isp_prt(isp, ISP_LOGWARN, "SRR[0x%x] SRR offset 0x%x covered by current CCB data range [0x%x..0x%x… in isp_handle_srr_start()
1992 isp_prt(isp, ISP_LOGTINFO, "SRR[0x%x] Got an FCP RSP SRR- resending status", atp->tag); in isp_handle_srr_start()
2002 isp_prt(isp, ISP_LOGWARN, "Got an FCP DATA IN SRR- dropping"); in isp_handle_srr_start()
2006 isp_prt(isp, ISP_LOGWARN, "Got an unknown information (%x) SRR- dropping", inot->in_srr_iu); in isp_handle_srr_start()
2015 if (isp_notify_ack(isp, inot)) { in isp_handle_srr_start()
2016 isp_prt(isp, ISP_LOGWARN, "could not push positive ack for SRR- you lose"); in isp_handle_srr_start()
2019 isp_target_start_ctio(isp, ccb, FROM_SRR); in isp_handle_srr_start()
2023 isp_async(isp, ISPASYNC_TARGET_NOTIFY_ACK, inot); in isp_handle_srr_start()
2029 if (isp_notify_ack(isp, inot)) { in isp_handle_srr_start()
2030 isp_prt(isp, ISP_LOGWARN, "could not push positive ack for SRR- you lose"); in isp_handle_srr_start()
2052 isp_handle_platform_srr(ispsoftc_t *isp, isp_notify_t *notify) in isp_handle_platform_srr() argument
2058 atp = isp_find_atpd(isp, notify->nt_channel, tag); in isp_handle_platform_srr()
2060 isp_prt(isp, ISP_LOGERR, "%s: cannot find adjunct for %x in SRR Notify", in isp_handle_platform_srr()
2062 isp_async(isp, ISPASYNC_TARGET_NOTIFY_ACK, inot); in isp_handle_platform_srr()
2067 isp_prt(isp, ISP_LOGTINFO, "SRR[0x%x] flags 0x%x srr_iu %x reloff 0x%x", in isp_handle_platform_srr()
2071 isp_handle_srr_start(isp, atp); in isp_handle_platform_srr()
2075 isp_handle_platform_ctio(ispsoftc_t *isp, void *arg) in isp_handle_platform_ctio() argument
2084 ccb = isp_find_xs(isp, handle); in isp_handle_platform_ctio()
2086 isp_print_bytes(isp, "null ccb in isp_handle_platform_ctio", QENTRY_LEN, arg); in isp_handle_platform_ctio()
2089 isp_destroy_handle(isp, handle); in isp_handle_platform_ctio()
2091 isp_free_pcmd(isp, ccb); in isp_handle_platform_ctio()
2094 if (IS_24XX(isp)) { in isp_handle_platform_ctio()
2095 atp = isp_find_atpd(isp, bus, ((ct7_entry_t *)arg)->ct_rxid); in isp_handle_platform_ctio()
2097 atp = isp_find_atpd(isp, bus, ((ct2_entry_t *)arg)->ct_rxid); in isp_handle_platform_ctio()
2105 atp = isp_find_atpd(isp, bus, ccb->csio.tag_id); in isp_handle_platform_ctio()
2108 isp_prt(isp, ISP_LOGERR, "%s: cannot find adjunct for %x after I/O", __func__, ccb->csio.tag_id); in isp_handle_platform_ctio()
2116 if (IS_24XX(isp)) { in isp_handle_platform_ctio()
2122 isp_handle_srr_start(isp, atp); in isp_handle_platform_ctio()
2136 …isp_prt(isp, ok? ISP_LOGTDEBUG0 : ISP_LOGWARN, "%s: CTIO7[%x] seq %u nc %d sts 0x%x flg 0x%x sns %… in isp_handle_platform_ctio()
2143 isp_handle_srr_start(isp, atp); in isp_handle_platform_ctio()
2158 …isp_prt(isp, ok? ISP_LOGTDEBUG0 : ISP_LOGWARN, "%s: CTIO2[%x] seq %u nc %d sts 0x%x flg 0x%x sns %… in isp_handle_platform_ctio()
2183 isp_prt(isp, ISP_LOGTDEBUG0, "%s CTIO[0x%x] done (ok=%d nc=%d nowsendstatus=%d ccb ss=%d)", in isp_handle_platform_ctio()
2187 isp_target_start_ctio(isp, ccb, FROM_CTIO_DONE); in isp_handle_platform_ctio()
2197 isp_put_atpd(isp, bus, atp); in isp_handle_platform_ctio()
2211 if (ok || IS_24XX(isp)) { in isp_handle_platform_ctio()
2219 isp_handle_platform_target_notify_ack(ispsoftc_t *isp, isp_notify_t *mp, uint32_t rsp) in isp_handle_platform_target_notify_ack() argument
2222 if (isp->isp_state != ISP_RUNSTATE) { in isp_handle_platform_target_notify_ack()
2223 …isp_prt(isp, ISP_LOGTINFO, "Notify Code 0x%x (qevalid=%d) acked- h/w not ready (dropping)", mp->nt… in isp_handle_platform_target_notify_ack()
2230 …if (IS_24XX(isp) && mp->nt_lreserved && ((isphdr_t *)mp->nt_lreserved)->rqs_entry_type == RQSTYPE_… in isp_handle_platform_target_notify_ack()
2238 if (isp_find_pdb_by_portid(isp, mp->nt_channel, sid, &lp)) { in isp_handle_platform_target_notify_ack()
2263 return (isp_target_put_entry(isp, &local)); in isp_handle_platform_target_notify_ack()
2269 …if (IS_24XX(isp) && mp->nt_lreserved && ((isphdr_t *)mp->nt_lreserved)->rqs_entry_type == RQSTYPE_… in isp_handle_platform_target_notify_ack()
2280 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: [%x] terminating after ABTS received", __func__, abts->abts_rxid… in isp_handle_platform_target_notify_ack()
2290 if (isp_target_put_entry(isp, cto)) { in isp_handle_platform_target_notify_ack()
2295 if (isp_acknak_abts(isp, mp->nt_lreserved, 0) == ENOMEM) { in isp_handle_platform_target_notify_ack()
2306 isp_del_all_wwn_entries(isp, mp->nt_channel); in isp_handle_platform_target_notify_ack()
2310 if (!IS_2100(isp) && IS_FC(isp)) { in isp_handle_platform_target_notify_ack()
2311 isp_del_wwn_entries(isp, mp); in isp_handle_platform_target_notify_ack()
2319 …isp_prt(isp, ISP_LOGTINFO, "Notify Code 0x%x (qevalid=%d) being acked", mp->nt_ncode, mp->nt_lrese… in isp_handle_platform_target_notify_ack()
2323 return (isp_notify_ack(isp, mp->nt_lreserved)); in isp_handle_platform_target_notify_ack()
2336 isp_handle_platform_target_tmf(ispsoftc_t *isp, isp_notify_t *notify) in isp_handle_platform_target_tmf() argument
2345 …isp_prt(isp, ISP_LOGTDEBUG0, "%s: code 0x%x sid 0x%x tagval 0x%016llx chan %d lun %jx", __func__,… in isp_handle_platform_target_tmf()
2351 atp = isp_find_atpd(isp, notify->nt_channel, in isp_handle_platform_target_tmf()
2358 tptr = get_lun_statep(isp, notify->nt_channel, lun); in isp_handle_platform_target_tmf()
2360 tptr = get_lun_statep(isp, notify->nt_channel, CAM_LUN_WILDCARD); in isp_handle_platform_target_tmf()
2362 …isp_prt(isp, ISP_LOGWARN, "%s: no state pointer found for chan %d lun %#jx", __func__, notify->nt_… in isp_handle_platform_target_tmf()
2368 …isp_prt(isp, ISP_LOGWARN, "%s: out of immediate notify structures for chan %d lun %#jx", __func__,… in isp_handle_platform_target_tmf()
2372 inot->ccb_h.target_id = ISP_MAX_TARGETS(isp); in isp_handle_platform_target_tmf()
2374 if (isp_find_pdb_by_portid(isp, notify->nt_channel, notify->nt_sid, &lp) == 0 && in isp_handle_platform_target_tmf()
2375 isp_find_pdb_by_handle(isp, notify->nt_channel, notify->nt_nphdl, &lp) == 0) { in isp_handle_platform_target_tmf()
2378 inot->initiator_id = FC_PORTDB_TGT(isp, notify->nt_channel, lp); in isp_handle_platform_target_tmf()
2385 isp_target_mark_aborted_early(isp, notify->nt_channel, tptr, inot->tag_id); in isp_handle_platform_target_tmf()
2389 isp_target_mark_aborted_early(isp, notify->nt_channel, tptr, TAG_ANY); in isp_handle_platform_target_tmf()
2411 …isp_prt(isp, ISP_LOGWARN, "%s: unknown TMF code 0x%x for chan %d lun %#jx", __func__, notify->nt_n… in isp_handle_platform_target_tmf()
2415 ntp = isp_get_ntpd(isp, notify->nt_channel); in isp_handle_platform_target_tmf()
2417 isp_prt(isp, ISP_LOGWARN, "%s: out of inotify private structures", __func__); in isp_handle_platform_target_tmf()
2429 ISP_PATH_PRT(isp, ISP_LOGTDEBUG2, inot->ccb_h.path, "Take FREE INOT\n"); in isp_handle_platform_target_tmf()
2436 if (isp_acknak_abts(isp, notify->nt_lreserved, ENOMEM)) { in isp_handle_platform_target_tmf()
2437 isp_prt(isp, ISP_LOGWARN, "you lose- unable to send an ACKNAK"); in isp_handle_platform_target_tmf()
2440 isp_async(isp, ISPASYNC_TARGET_NOTIFY_ACK, notify->nt_lreserved); in isp_handle_platform_target_tmf()
2446 isp_target_mark_aborted_early(ispsoftc_t *isp, int chan, tstate_t *tptr, uint32_t tag_id) in isp_target_mark_aborted_early() argument
2456 if (IS_24XX(isp)) in isp_target_mark_aborted_early()
2461 isp_endcmd(isp, ntp->data, NIL_HANDLE, chan, in isp_target_mark_aborted_early()
2463 isp_put_ntpd(isp, chan, ntp); in isp_target_mark_aborted_early()
2472 ISP_GET_PC(isp, chan, atpool, atpool); in isp_target_mark_aborted_early()
2487 ispsoftc_t *isp; in isp_cam_async() local
2490 isp = (ispsoftc_t *) cam_sim_softc(sim); in isp_cam_async()
2496 if (IS_SCSI(isp)) { in isp_cam_async()
2498 sdparam *sdp = SDPARAM(isp, bus); in isp_cam_async()
2503 if (isp->isp_loaded_fw) { in isp_cam_async()
2510 (void) isp_control(isp, ISPCTL_UPDATE_PARAMS, bus); in isp_cam_async()
2516 isp_prt(isp, ISP_LOGWARN, "isp_cam_async: Code 0x%x", code); in isp_cam_async()
2524 ispsoftc_t *isp = cam_sim_softc(sim); in isp_poll() local
2526 ISP_RUN_ISR(isp); in isp_poll()
2534 ispsoftc_t *isp; in isp_watchdog() local
2537 isp = XS_ISP(xs); in isp_watchdog()
2539 handle = isp_find_handle(isp, xs); in isp_watchdog()
2545 ISP_RUN_ISR(isp); in isp_watchdog()
2547 handle = isp_find_handle(isp, xs); in isp_watchdog()
2558 if (isp_control(isp, ISPCTL_ABORT_CMD, xs) == 0) { in isp_watchdog()
2566 xs = isp_find_xs(isp, handle); in isp_watchdog()
2580 ISP_DMAFREE(isp, xs, handle); in isp_watchdog()
2582 isp_destroy_handle(isp, handle); in isp_watchdog()
2583 isp_prt(isp, ISP_LOGERR, "%s: timeout for handle 0x%x", __func__, handle); in isp_watchdog()
2588 …isp_prt(isp, ISP_LOGWARN, "%s: timeout for handle 0x%x, recovered during interrupt", __func__, oha… in isp_watchdog()
2590 isp_prt(isp, ISP_LOGWARN, "%s: timeout for handle already free", __func__); in isp_watchdog()
2596 isp_make_here(ispsoftc_t *isp, fcportdb_t *fcp, int chan, int tgt) in isp_make_here() argument
2599 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_here()
2606 isp_prt(isp, ISP_LOGWARN, "Chan %d unable to alloc CCB for rescan", chan); in isp_make_here()
2611 isp_prt(isp, ISP_LOGWARN, "unable to create path for rescan"); in isp_make_here()
2619 isp_make_gone(ispsoftc_t *isp, fcportdb_t *fcp, int chan, int tgt) in isp_make_gone() argument
2622 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_make_gone()
2651 ispsoftc_t *isp = fc->isp; in isp_gdt_task() local
2652 int chan = fc - isp->isp_osinfo.pc.fc; in isp_gdt_task()
2658 ISP_LOCK(isp); in isp_gdt_task()
2659 isp_prt(isp, ISP_LOGDEBUG0, "Chan %d GDT timer expired", chan); in isp_gdt_task()
2661 lp = &FCPARAM(isp, chan)->portdb[dbidx]; in isp_gdt_task()
2671 isp_prt(isp, ISP_LOGCONFIG, prom3, chan, dbidx, lp->portid, "Gone Device Timeout"); in isp_gdt_task()
2674 isp_make_gone(isp, lp, chan, dbidx); in isp_gdt_task()
2693 …isp_prt(isp, ISP_LOG_SANCFG, "Chan %d Stopping Gone Device Timer @ %lu", chan, (unsigned long) tim… in isp_gdt_task()
2696 ISP_UNLOCK(isp); in isp_gdt_task()
2709 isp_loop_changed(ispsoftc_t *isp, int chan) in isp_loop_changed() argument
2711 fcparam *fcp = FCPARAM(isp, chan); in isp_loop_changed()
2712 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_changed()
2716 isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, "Chan %d Loop changed", chan); in isp_loop_changed()
2718 isp_freeze_loopdown(isp, chan); in isp_loop_changed()
2724 isp_loop_up(ispsoftc_t *isp, int chan) in isp_loop_up() argument
2726 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_up()
2728 isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, "Chan %d Loop is up", chan); in isp_loop_up()
2731 isp_unfreeze_loopdown(isp, chan); in isp_loop_up()
2735 isp_loop_dead(ispsoftc_t *isp, int chan) in isp_loop_dead() argument
2737 fcparam *fcp = FCPARAM(isp, chan); in isp_loop_dead()
2738 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_loop_dead()
2744 isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, "Chan %d Loop is dead", chan); in isp_loop_dead()
2755 for (i = 0; i < isp->isp_maxcmds; i++) { in isp_loop_dead()
2758 if (ISP_H2HT(isp->isp_xflist[i].handle) != ISP_HANDLE_INITIATOR) { in isp_loop_dead()
2761 if ((xs = isp->isp_xflist[i].cmd) == NULL) { in isp_loop_dead()
2767 isp_prt(isp, ISP_LOGWARN, "command handle 0x%x for %d.%d.%jx orphaned by loop down timeout", in isp_loop_dead()
2768 isp->isp_xflist[i].handle, chan, XS_TGT(xs), in isp_loop_dead()
2776 if (isp_control(isp, ISPCTL_ABORT_CMD, xs) == 0) { in isp_loop_dead()
2781 ISP_DMAFREE(isp, xs, isp->isp_xflist[i].handle); in isp_loop_dead()
2783 isp_destroy_handle(isp, isp->isp_xflist[i].handle); in isp_loop_dead()
2784 …isp_prt(isp, ISP_LOGWARN, "command handle 0x%x for %d.%d.%jx could not be aborted and was destroye… in isp_loop_dead()
2785 isp->isp_xflist[i].handle, chan, XS_TGT(xs), in isp_loop_dead()
2791 isp_prt(isp, ISP_LOGCONFIG, prom3, chan, dbidx, lp->portid, "Loop Down Timeout"); in isp_loop_dead()
2794 isp_make_gone(isp, lp, chan, dbidx); in isp_loop_dead()
2808 isp_unfreeze_loopdown(isp, chan); in isp_loop_dead()
2816 ispsoftc_t *isp = fc->isp; in isp_kthread() local
2817 int chan = fc - isp->isp_osinfo.pc.fc; in isp_kthread()
2821 ISP_LOCK(isp); in isp_kthread()
2822 while (isp->isp_osinfo.is_exiting == 0) { in isp_kthread()
2823 isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, in isp_kthread()
2825 lb = isp_fc_runstate(isp, chan, 250000); in isp_kthread()
2826 isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, in isp_kthread()
2868 isp_loop_up(isp, chan); in isp_kthread()
2870 isp_loop_dead(isp, chan); in isp_kthread()
2873 isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, in isp_kthread()
2875 msleep(fc, &isp->isp_lock, PRIBIO, "ispf", slp * hz); in isp_kthread()
2878 ISP_UNLOCK(isp); in isp_kthread()
2884 isp_abort_atio(ispsoftc_t *isp, union ccb *ccb) in isp_abort_atio() argument
2891 tptr = get_lun_statep(isp, XS_CHANNEL(accb), XS_LUN(accb)); in isp_abort_atio()
2898 ISP_PATH_PRT(isp, ISP_LOGTDEBUG2, sccb->path, in isp_abort_atio()
2908 atp = isp_find_atpd(isp, XS_CHANNEL(accb), accb->atio.tag_id); in isp_abort_atio()
2911 if (!atp->dead && IS_24XX(isp)) { in isp_abort_atio()
2925 isp_target_put_entry(isp, cto); in isp_abort_atio()
2927 isp_put_atpd(isp, XS_CHANNEL(accb), atp); in isp_abort_atio()
2935 isp_abort_inot(ispsoftc_t *isp, union ccb *ccb) in isp_abort_inot() argument
2942 tptr = get_lun_statep(isp, XS_CHANNEL(accb), XS_LUN(accb)); in isp_abort_inot()
2949 ISP_PATH_PRT(isp, ISP_LOGTDEBUG2, sccb->path, in isp_abort_inot()
2959 ntp = isp_find_ntpd(isp, XS_CHANNEL(accb), accb->cin1.tag_id, accb->cin1.seq_id); in isp_abort_inot()
2962 isp_async(isp, ISPASYNC_TARGET_NOTIFY_ACK, in isp_abort_inot()
2965 isp_put_ntpd(isp, XS_CHANNEL(accb), ntp); in isp_abort_inot()
2978 ispsoftc_t *isp; in isp_action() local
2984 isp = (ispsoftc_t *)cam_sim_softc(sim); in isp_action()
2985 ISP_ASSERT_LOCKED(isp); in isp_action()
2987 isp_prt(isp, ISP_LOGDEBUG2, "isp_action code %x", ccb->ccb_h.func_code); in isp_action()
3004 if (ccb->ccb_h.target_id >= ISP_MAX_TARGETS(isp)) { in isp_action()
3007 } else if (ISP_MAX_LUNS(isp) > 0 && in isp_action()
3008 ccb->ccb_h.target_lun >= ISP_MAX_LUNS(isp)) { in isp_action()
3018 if (isp_get_pcmd(isp, ccb)) { in isp_action()
3019 isp_prt(isp, ISP_LOGWARN, "out of PCMDs"); in isp_action()
3038 isp_prt(isp, ISP_LOGDEBUG0, "%d.%jx retry later", in isp_action()
3043 isp_free_pcmd(isp, ccb); in isp_action()
3047 isp_free_pcmd(isp, ccb); in isp_action()
3057 isp_prt(isp, ISP_LOGERR, "What's this? 0x%x at %d in file %s", error, __LINE__, __FILE__); in isp_action()
3059 isp_free_pcmd(isp, ccb); in isp_action()
3067 isp_enable_lun(isp, ccb); in isp_action()
3069 isp_disable_lun(isp, ccb); in isp_action()
3075 tstate_t *tptr = get_lun_statep(isp, XS_CHANNEL(ccb), ccb->ccb_h.target_lun); in isp_action()
3083 ISP_PATH_PRT(isp, ISP_LOGWARN, ccb->ccb_h.path, in isp_action()
3091 ccb->ccb_h.spriv_ptr1 = isp; in isp_action()
3096 ISP_PATH_PRT(isp, ISP_LOGTDEBUG2, ccb->ccb_h.path, in isp_action()
3101 ISP_PATH_PRT(isp, ISP_LOGTDEBUG2, ccb->ccb_h.path, in isp_action()
3118 …ISP_PATH_PRT(isp, ISP_LOGTDEBUG0, ccb->ccb_h.path, "%s: [0x%x] NOTIFY ACKNOWLEDGE for 0x%x seen\n"… in isp_action()
3119 ntp = isp_find_ntpd(isp, XS_CHANNEL(ccb), ccb->cna2.tag_id, ccb->cna2.seq_id); in isp_action()
3121 …ISP_PATH_PRT(isp, ISP_LOGWARN, ccb->ccb_h.path, "%s: [0x%x] XPT_NOTIFY_ACKNOWLEDGE of 0x%x cannot … in isp_action()
3127 if (isp_handle_platform_target_notify_ack(isp, &ntp->nt, in isp_action()
3135 isp_put_ntpd(isp, XS_CHANNEL(ccb), ntp); in isp_action()
3137 …ISP_PATH_PRT(isp, ISP_LOGTDEBUG0, ccb->ccb_h.path, "%s: [0x%x] calling xpt_done for tag 0x%x\n", _… in isp_action()
3142 isp_target_start_ctio(isp, ccb, FROM_CAM); in isp_action()
3149 error = isp_control(isp, ISPCTL_RESET_DEV, bus, tgt); in isp_action()
3158 if (IS_FC(isp)) in isp_action()
3159 isp_fcp_reset_crn(isp, bus, tgt, /*tgt_set*/ 1); in isp_action()
3171 isp_abort_atio(isp, ccb); in isp_action()
3174 isp_abort_inot(isp, ccb); in isp_action()
3178 error = isp_control(isp, ISPCTL_ABORT_CMD, accb); in isp_action()
3204 if (IS_SCSI(isp)) { in isp_action()
3207 sdparam *sdp = SDPARAM(isp, bus); in isp_action()
3257 …isp_prt(isp, ISP_LOGDEBUG0, "SET (%d.%d.%jx) to flags %x off %x per %x", bus, tgt, (uintmax_t)cts-… in isp_action()
3268 if (IS_FC(isp)) { in isp_action()
3269 fcparam *fcp = FCPARAM(isp, bus); in isp_action()
3293 sdparam *sdp = SDPARAM(isp, bus); in isp_action()
3299 (void) isp_control(isp, ISPCTL_UPDATE_PARAMS, bus); in isp_action()
3343 …isp_prt(isp, ISP_LOGDEBUG0, "GET %s (%d.%d.%jx) to flags %x off %x per %x", IS_CURRENT_SETTINGS(ct… in isp_action()
3356 error = isp_control(isp, ISPCTL_RESET_BUS, bus); in isp_action()
3365 if (IS_FC(isp)) { in isp_action()
3366 xpt_async(AC_BUS_RESET, ISP_FC_PC(isp, bus)->path, 0); in isp_action()
3368 xpt_async(AC_BUS_RESET, ISP_SPI_PC(isp, bus)->path, 0); in isp_action()
3384 if (!IS_FC(isp)) { in isp_action()
3390 fcp = FCPARAM(isp, bus); 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()
3395 …isp_prt(isp, ISP_LOGALL, "Setting Channel %d wwns to 0x%jx 0x%jx", bus, fcp->isp_wwnn, fcp->isp_ww… in isp_action()
3429 …ISP_PATH_PRT(isp, ISP_LOGCONFIG, ccb->ccb_h.path, "changing role on from %d to %d\n", fcp->role, n… in isp_action()
3430 if (isp_control(isp, ISPCTL_CHANGE_ROLE, in isp_action()
3446 if (IS_FC(isp)) { in isp_action()
3449 fcp = FCPARAM(isp, bus); in isp_action()
3481 if (IS_FC(isp) && ISP_CAP_TMODE(isp) && ISP_CAP_SCCFW(isp)) in isp_action()
3487 cpi->max_target = ISP_MAX_TARGETS(isp) - 1; in isp_action()
3488 cpi->max_lun = ISP_MAX_LUNS(isp) == 0 ? in isp_action()
3489 255 : ISP_MAX_LUNS(isp) - 1; in isp_action()
3496 if (IS_FC(isp)) { in isp_action()
3497 fcparam *fcp = FCPARAM(isp, bus); in isp_action()
3511 if (IS_25XX(isp)) { in isp_action()
3513 } else if (IS_24XX(isp)) { in isp_action()
3515 } else if (IS_23XX(isp)) { in isp_action()
3528 sdparam *sdp = SDPARAM(isp, bus); in isp_action()
3556 ispsoftc_t *isp = XS_ISP(sccb); in isp_done() local
3582 isp_free_pcmd(isp, (union ccb *) sccb); in isp_done()
3588 isp_async(ispsoftc_t *isp, ispasync_t cmd, ...) in isp_async() argument
3617 sdp = SDPARAM(isp, bus); in isp_async()
3619 …if (xpt_create_path(&tmppath, NULL, cam_sim_path(ISP_SPI_PC(isp, bus)->sim), tgt, CAM_LUN_WILDCARD… in isp_async()
3620 isp_prt(isp, ISP_LOGWARN, "isp_async cannot make temp path for %d.%d", tgt, bus); in isp_async()
3652 …isp_prt(isp, ISP_LOGDEBUG2, "NEW_TGT_PARAMS bus %d tgt %d period %x offset %x flags %x", bus, tgt,… in isp_async()
3663 isp_prt(isp, ISP_LOGINFO, "SCSI bus reset on bus %d detected", bus); in isp_async()
3664 if (IS_FC(isp)) { in isp_async()
3665 xpt_async(AC_BUS_RESET, ISP_FC_PC(isp, bus)->path, NULL); in isp_async()
3667 xpt_async(AC_BUS_RESET, ISP_SPI_PC(isp, bus)->path, NULL); in isp_async()
3679 lipp = ISP_READ(isp, OUTMAILBOX1); in isp_async()
3680 fcp = FCPARAM(isp, bus); in isp_async()
3682 isp_prt(isp, ISP_LOGINFO, "Chan %d LOOP Reset, LIP primitive %x", bus, lipp); in isp_async()
3695 isp_fcp_reset_crn(isp, bus, /*tgt*/0, /*tgt_set*/ 0); in isp_async()
3696 isp_loop_changed(isp, bus); in isp_async()
3713 isp_loop_changed(isp, bus); in isp_async()
3714 isp_prt(isp, ISP_LOGINFO, "Chan %d %s", bus, msg); in isp_async()
3721 fc = ISP_FC_PC(isp, bus); in isp_async()
3722 tgt = FC_PORTDB_TGT(isp, bus, lp); in isp_async()
3724 isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->portid, lp->handle, buf, "arrived"); in isp_async()
3725 if ((FCPARAM(isp, bus)->role & ISP_ROLE_INITIATOR) && in isp_async()
3728 isp_fcp_reset_crn(isp, bus, tgt, /*tgt_set*/ 1); in isp_async()
3729 isp_make_here(isp, lp, bus, tgt); in isp_async()
3731 if ((FCPARAM(isp, bus)->role & ISP_ROLE_TARGET) && in isp_async()
3753 fc = ISP_FC_PC(isp, bus); in isp_async()
3754 tgt = FC_PORTDB_TGT(isp, bus, lp); in isp_async()
3757 …isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->new_portid, lp->handle, buf, "change… in isp_async()
3759 …isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->portid, lp->handle, buf, "stayed"); … in isp_async()
3762 ((FCPARAM(isp, bus)->role & ISP_ROLE_INITIATOR) && in isp_async()
3767 isp_fcp_reset_crn(isp, bus, tgt, /*tgt_set*/ 1); in isp_async()
3770 isp_make_here(isp, lp, bus, tgt); in isp_async()
3772 isp_make_gone(isp, lp, bus, tgt); in isp_async()
3774 isp_fcp_reset_crn(isp, bus, tgt, /*tgt_set*/ 1); in isp_async()
3780 ((FCPARAM(isp, bus)->role & ISP_ROLE_TARGET) && in isp_async()
3794 isp_fcp_reset_crn(isp, bus, tgt, /*tgt_set*/ 1); in isp_async()
3803 fc = ISP_FC_PC(isp, bus); in isp_async()
3804 tgt = FC_PORTDB_TGT(isp, bus, lp); in isp_async()
3813 …isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->portid, lp->handle, buf, "gone zombi… in isp_async()
3815 …isp_prt(isp, ISP_LOG_SANCFG|ISP_LOGDEBUG0, "Chan %d Starting Gone Device Timer with %u seconds tim… in isp_async()
3820 isp_prt(isp, ISP_LOGCONFIG, prom, bus, tgt, lp->port_wwn, lp->portid, lp->handle, buf, "gone"); in isp_async()
3845 isp_prt(isp, ISP_LOGINFO, in isp_async()
3872 if (!isp_find_pdb_by_handle(isp, bus, nphdl, &lp)) in isp_async()
3874 tgt = FC_PORTDB_TGT(isp, bus, lp); in isp_async()
3877 isp_fcp_reset_crn(isp, bus, tgt, tgt_set); in isp_async()
3884 isp_prt(isp, ISP_LOGINFO, "Chan %d %s (PortID 0x%06x)", in isp_async()
3888 isp_prt(isp, ISP_LOGINFO, "Chan %d %s", bus, msg); in isp_async()
3890 isp_loop_changed(isp, bus); in isp_async()
3912 isp_handle_platform_target_tmf(isp, notify); in isp_async()
3928 isp_handle_platform_target_notify_ack(isp, notify, 0); in isp_async()
3931 isp_handle_platform_srr(isp, notify); in isp_async()
3934 isp_prt(isp, ISP_LOGALL, "target notify code 0x%x", notify->nt_ncode); in isp_async()
3935 isp_handle_platform_target_notify_ack(isp, notify, 0); in isp_async()
3946 if (isp_notify_ack(isp, inot)) { in isp_async()
3949 tp->isp = isp; in isp_async()
3952 callout_init_mtx(&tp->timer, &isp->isp_lock, 0); in isp_async()
3956 isp_prt(isp, ISP_LOGERR, "you lose- cannot allocate a notify refire"); in isp_async()
3970 isp_handle_platform_atio7(isp, (at7_entry_t *) hp); in isp_async()
3973 isp_handle_platform_atio2(isp, (at2_entry_t *) hp); in isp_async()
3979 isp_handle_platform_ctio(isp, hp); in isp_async()
3982 isp_prt(isp, ISP_LOGWARN, "%s: unhandled target action 0x%x", in isp_async()
3992 mbox1 = ISP_READ(isp, OUTMAILBOX1); in isp_async()
3993 if (IS_DUALBUS(isp)) { in isp_async()
3994 mbox6 = ISP_READ(isp, OUTMAILBOX6); in isp_async()
3998 isp_prt(isp, ISP_LOGERR, "Internal Firmware Error on bus %d @ RISC Address 0x%x", mbox6, mbox1); in isp_async()
4000 mbox1 = isp->isp_osinfo.mbox_sleep_ok; in isp_async()
4001 isp->isp_osinfo.mbox_sleep_ok = 0; in isp_async()
4002 isp_reinit(isp, 1); in isp_async()
4003 isp->isp_osinfo.mbox_sleep_ok = mbox1; in isp_async()
4004 isp_async(isp, ISPASYNC_FW_RESTARTED, NULL); in isp_async()
4009 isp_prt(isp, ISP_LOGERR, "unknown isp_async event %d", cmd); in isp_async()
4015 isp_default_wwn(ispsoftc_t * isp, int chan, int isactive, int iswwnn) in isp_default_wwn() argument
4018 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_default_wwn()
4027 seed = iswwnn ? FCPARAM(isp, chan)->isp_wwnn_nvram : in isp_default_wwn()
4028 FCPARAM(isp, chan)->isp_wwpn_nvram; in isp_default_wwn()
4035 seed = iswwnn ? ISP_FC_PC(isp, 0)->def_wwnn : in isp_default_wwn()
4036 ISP_FC_PC(isp, 0)->def_wwpn; in isp_default_wwn()
4038 seed = iswwnn ? FCPARAM(isp, 0)->isp_wwnn_nvram : in isp_default_wwn()
4039 FCPARAM(isp, 0)->isp_wwpn_nvram; in isp_default_wwn()
4045 seed = 0x400000007F000000ull + device_get_unit(isp->isp_dev); in isp_default_wwn()
4065 isp_prt(ispsoftc_t *isp, int level, const char *fmt, ...) in isp_prt() argument
4071 if (level != ISP_LOGALL && (level & isp->isp_dblev) == 0) { in isp_prt()
4074 snprintf(lbuf, sizeof (lbuf), "%s: ", device_get_nameunit(isp->isp_dev)); in isp_prt()
4083 isp_xs_prt(ispsoftc_t *isp, XS_T *xs, int level, const char *fmt, ...) in isp_xs_prt() argument
4086 if (level != ISP_LOGALL && (level & isp->isp_dblev) == 0) { in isp_xs_prt()
4110 isp_mbox_acquire(ispsoftc_t *isp) in isp_mbox_acquire() argument
4112 if (isp->isp_osinfo.mboxbsy) { in isp_mbox_acquire()
4115 isp->isp_osinfo.mboxcmd_done = 0; in isp_mbox_acquire()
4116 isp->isp_osinfo.mboxbsy = 1; in isp_mbox_acquire()
4122 isp_mbox_wait_complete(ispsoftc_t *isp, mbreg_t *mbp) in isp_mbox_wait_complete() argument
4127 if (isp->isp_osinfo.mbox_sleep_ok) { in isp_mbox_wait_complete()
4128 isp->isp_osinfo.mbox_sleep_ok = 0; in isp_mbox_wait_complete()
4129 isp->isp_osinfo.mbox_sleeping = 1; in isp_mbox_wait_complete()
4130 msleep_sbt(&isp->isp_osinfo.mboxcmd_done, &isp->isp_lock, in isp_mbox_wait_complete()
4132 isp->isp_osinfo.mbox_sleep_ok = 1; in isp_mbox_wait_complete()
4133 isp->isp_osinfo.mbox_sleeping = 0; in isp_mbox_wait_complete()
4136 if (isp->isp_osinfo.mboxcmd_done) in isp_mbox_wait_complete()
4138 ISP_RUN_ISR(isp); in isp_mbox_wait_complete()
4139 if (isp->isp_osinfo.mboxcmd_done) in isp_mbox_wait_complete()
4144 if (isp->isp_osinfo.mboxcmd_done == 0) { in isp_mbox_wait_complete()
4145 isp_prt(isp, ISP_LOGWARN, "%s Mailbox Command (0x%x) Timeout (%uus) (%s:%d)", in isp_mbox_wait_complete()
4146 isp->isp_osinfo.mbox_sleep_ok? "Interrupting" : "Polled", in isp_mbox_wait_complete()
4147 isp->isp_lastmbxcmd, to, mbp->func, mbp->lineno); in isp_mbox_wait_complete()
4149 isp->isp_osinfo.mboxcmd_done = 1; in isp_mbox_wait_complete()
4154 isp_mbox_notify_done(ispsoftc_t *isp) in isp_mbox_notify_done() argument
4156 isp->isp_osinfo.mboxcmd_done = 1; in isp_mbox_notify_done()
4157 if (isp->isp_osinfo.mbox_sleeping) in isp_mbox_notify_done()
4158 wakeup(&isp->isp_osinfo.mboxcmd_done); in isp_mbox_notify_done()
4162 isp_mbox_release(ispsoftc_t *isp) in isp_mbox_release() argument
4164 isp->isp_osinfo.mboxbsy = 0; in isp_mbox_release()
4168 isp_fc_scratch_acquire(ispsoftc_t *isp, int chan) in isp_fc_scratch_acquire() argument
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()
4182 ispsoftc_t *isp = arg; in isp_platform_intr() local
4184 ISP_LOCK(isp); in isp_platform_intr()
4185 ISP_RUN_ISR(isp); in isp_platform_intr()
4186 ISP_UNLOCK(isp); in isp_platform_intr()
4192 ispsoftc_t *isp = arg; in isp_platform_intr_resp() local
4194 ISP_LOCK(isp); in isp_platform_intr_resp()
4195 isp_intr_respq(isp); in isp_platform_intr_resp()
4196 ISP_UNLOCK(isp); in isp_platform_intr_resp()
4199 ISP_WRITE(isp, BIU2400_HCCR, HCCR_2400_CMD_CLEAR_RISC_INT); in isp_platform_intr_resp()
4205 ispsoftc_t *isp = arg; in isp_platform_intr_atio() local
4207 ISP_LOCK(isp); in isp_platform_intr_atio()
4209 isp_intr_atioq(isp); in isp_platform_intr_atio()
4211 ISP_UNLOCK(isp); in isp_platform_intr_atio()
4214 ISP_WRITE(isp, BIU2400_HCCR, HCCR_2400_CMD_CLEAR_RISC_INT); in isp_platform_intr_atio()
4218 isp_common_dmateardown(ispsoftc_t *isp, struct ccb_scsiio *csio, uint32_t hdl) in isp_common_dmateardown() argument
4221 bus_dmamap_sync(isp->isp_osinfo.dmat, PISP_PCMD(csio)->dmap, BUS_DMASYNC_POSTREAD); in isp_common_dmateardown()
4223 bus_dmamap_sync(isp->isp_osinfo.dmat, PISP_PCMD(csio)->dmap, BUS_DMASYNC_POSTWRITE); in isp_common_dmateardown()
4225 bus_dmamap_unload(isp->isp_osinfo.dmat, PISP_PCMD(csio)->dmap); in isp_common_dmateardown()
4234 isp_fcp_reset_crn(ispsoftc_t *isp, int chan, uint32_t tgt, int tgt_set) in isp_fcp_reset_crn() argument
4236 struct isp_fc *fc = ISP_FC_PC(isp, chan); in isp_fcp_reset_crn()
4241 isp_prt(isp, ISP_LOGDEBUG0, in isp_fcp_reset_crn()
4244 isp_prt(isp, ISP_LOGDEBUG0, in isp_fcp_reset_crn()
4256 isp_fcp_next_crn(ispsoftc_t *isp, uint8_t *crnp, XS_T *cmd) in isp_fcp_next_crn() argument
4264 if (IS_2100(isp)) in isp_fcp_next_crn()
4270 fc = &isp->isp_osinfo.pc.fc[chan]; in isp_fcp_next_crn()
4306 ispsoftc_t *isp = arg; in isp_timer() local
4308 isp_tmcmd_restart(isp); in isp_timer()
4310 callout_reset(&isp->isp_osinfo.tmo, isp_timer_count, isp_timer, isp); in isp_timer()
4314 isp_get_ecmd(ispsoftc_t *isp) in isp_get_ecmd() argument
4316 isp_ecmd_t *ecmd = isp->isp_osinfo.ecmd_free; in isp_get_ecmd()
4318 isp->isp_osinfo.ecmd_free = ecmd->next; in isp_get_ecmd()
4324 isp_put_ecmd(ispsoftc_t *isp, isp_ecmd_t *ecmd) in isp_put_ecmd() argument
4326 ecmd->next = isp->isp_osinfo.ecmd_free; in isp_put_ecmd()
4327 isp->isp_osinfo.ecmd_free = ecmd; in isp_put_ecmd()