Lines Matching defs:currSCCB

872 static void FPT_hostDataXferRestart(struct sccb *currSCCB);
1746 struct sccb *currSCCB;
1769 currSCCB = pCurrCard->currentSCCB;
1822 currSCCB->Sccb_XferState |= F_NO_DATA_YET;
1824 currSCCB->Sccb_savedATC = currSCCB->Sccb_ATC;
1827 currSCCB->Sccb_scsistat = DISCONNECT_ST;
1828 FPT_queueDisconnect(currSCCB, thisCard);
1874 currSCCB->Sccb_XferState |=
1876 currSCCB->Sccb_savedATC =
1877 currSCCB->Sccb_ATC;
1882 currSCCB->Sccb_scsistat = DISCONNECT_ST;
1883 FPT_queueDisconnect(currSCCB, thisCard);
1946 currSCCB);
2314 struct sccb *currSCCB;
2319 currSCCB = CurrCard->currentSCCB;
2320 target = currSCCB->TargID;
2327 currSCCB->ControlByte &= ~F_USE_CMD_Q;
2332 lun = currSCCB->Lun;
2337 if (!(currSCCB->ControlByte & F_USE_CMD_Q)) {
2380 || (!(currSCCB->ControlByte & F_USE_CMD_Q)))) {
2393 CurrCard->discQ_Tbl[lastTag] = currSCCB;
2411 if (currSCCB->OperationCode == RESET_COMMAND) {
2413 (currSCCB->
2418 currSCCB->Sccb_scsimsg = SMDEV_RESET;
2422 currSCCB->Sccb_scsistat = SELECT_BDR_ST;
2438 else if (currSCCB->Sccb_scsistat == ABORT_ST) {
2440 (currSCCB->
2447 char)(currSCCB->
2453 (MPM_OP + AMSG_OUT + currSCCB->Sccb_tag));
2463 currSCCB->Sccb_scsistat = SELECT_WN_ST;
2469 currSCCB->Sccb_scsistat = SELECT_SN_ST;
2474 if (currSCCB->ControlByte & F_USE_CMD_Q) {
2480 currSCCB->ControlByte &= ~F_USE_CMD_Q;
2489 currSCCB->Sccb_idmsg));
2496 currSCCB->Sccb_scsistat = SELECT_ST;
2504 currSCCB->Sccb_idmsg));
2508 (((unsigned char)(currSCCB->
2523 currSCCB->Sccb_tag = lastTag;
2525 currSCCB;
2538 currSCCB->Sccb_scsistat = SELECT_Q_ST;
2551 (MPM_OP + AMSG_OUT + currSCCB->Sccb_idmsg));
2553 currSCCB->Sccb_scsistat = SELECT_ST;
2559 theCCB = (unsigned char *)&currSCCB->Cdb[0];
2563 for (i = 0; i < currSCCB->CdbLength; i++) {
2569 if (currSCCB->CdbLength != TWELVE_BYTE_CMD)
2581 if (!(currSCCB->Sccb_MGRFlags & F_DEV_SELECTED)) {
2613 struct sccb *currSCCB;
2622 currSCCB = pCurrCard->currentSCCB;
2623 if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
2625 currSCCB->Sccb_scsistat = BUS_FREE_ST;
2627 if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
2629 currSCCB->Sccb_scsistat = BUS_FREE_ST;
2634 currTar_Info->TarLUNBusy[currSCCB->Lun] = 0;
2635 if (currSCCB->Sccb_scsistat != ABORT_ST) {
2638 LunDiscQ_Idx[currSCCB->
2644 if (currSCCB->Sccb_tag) {
2645 if (currSCCB->Sccb_scsistat != ABORT_ST) {
2647 pCurrCard->discQ_Tbl[currSCCB->
2651 if (currSCCB->Sccb_scsistat != ABORT_ST) {
2891 struct sccb *currSCCB;
2896 currSCCB = CurrCard->currentSCCB;
2898 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
2901 if (!(currSCCB->Sccb_XferState & F_NO_DATA_YET)) {
2902 currSCCB->Sccb_ATC = currSCCB->Sccb_savedATC;
2904 FPT_hostDataXferRestart(currSCCB);
2914 if (currSCCB->Sccb_scsistat == SELECT_Q_ST) {
2934 if ((currSCCB->Sccb_scsistat == SELECT_SN_ST) ||
2935 (currSCCB->Sccb_scsistat == SELECT_WN_ST) ||
2949 if (currSCCB->Lun == 0x00) {
2950 if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
2959 else if (currSCCB->Sccb_scsistat ==
2980 currSCCB->ControlByte &= ~F_USE_CMD_Q;
2982 CurrCard->discQ_Tbl[currSCCB->
2984 currSCCB->Sccb_tag = 0x00;
2991 if (currSCCB->Lun == 0x00) {
3004 currTar_Info->TarLUNBusy[currSCCB->
3009 currSCCB->ControlByte &=
3036 FPT_shandem(port, p_card, currSCCB);
3043 message = FPT_sfm(port, currSCCB);
3045 if (currSCCB->Sccb_scsimsg != SMPARITY)
3053 currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
3054 currSCCB->Sccb_scsimsg = SMREJECT;
3139 struct sccb *currSCCB;
3142 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3143 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
3149 (currSCCB->
3220 struct sccb *currSCCB;
3223 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3224 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
3226 sync_msg = FPT_sfm(port, currSCCB);
3228 if ((sync_msg == 0x00) && (currSCCB->Sccb_scsimsg == SMPARITY)) {
3236 offset = FPT_sfm(port, currSCCB);
3238 if ((offset == 0x00) && (currSCCB->Sccb_scsimsg == SMPARITY)) {
3313 FPT_sssyncv(port, currSCCB->TargID, sync_reg, currTar_Info);
3315 if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
3379 struct sccb *currSCCB;
3382 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3383 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
3389 (currSCCB->
3435 struct sccb *currSCCB;
3438 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3439 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
3441 width = FPT_sfm(port, currSCCB);
3443 if ((width == 0x00) && (currSCCB->Sccb_scsimsg == SMPARITY)) {
3460 FPT_sssyncv(port, currSCCB->TargID, width, currTar_Info);
3462 if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
3472 currSCCB->Sccb_scsistat = SELECT_SN_ST;
3677 struct sccb *currSCCB;
3679 currSCCB = pCurrCard->currentSCCB;
3681 currSCCB->Save_CdbLen = currSCCB->CdbLength;
3685 currSCCB->Save_Cdb[i] = currSCCB->Cdb[i];
3688 currSCCB->CdbLength = SIX_BYTE_CMD;
3689 currSCCB->Cdb[0] = SCSI_REQUEST_SENSE;
3690 currSCCB->Cdb[1] = currSCCB->Cdb[1] & (unsigned char)0xE0; /*Keep LUN. */
3691 currSCCB->Cdb[2] = 0x00;
3692 currSCCB->Cdb[3] = 0x00;
3693 currSCCB->Cdb[4] = currSCCB->RequestSenseLength;
3694 currSCCB->Cdb[5] = 0x00;
3696 currSCCB->Sccb_XferCnt = (u32)currSCCB->RequestSenseLength;
3698 currSCCB->Sccb_ATC = 0x00;
3700 currSCCB->Sccb_XferState |= F_AUTO_SENSE;
3702 currSCCB->Sccb_XferState &= ~F_SG_XFER;
3704 currSCCB->Sccb_idmsg = currSCCB->Sccb_idmsg & ~(unsigned char)DISC_PRIV;
3706 currSCCB->ControlByte = 0x00;
3708 currSCCB->Sccb_MGRFlags &= F_STATUSLOADED;
3807 struct sccb *currSCCB;
3809 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3811 if ((currSCCB->Sccb_scsistat != DATA_OUT_ST) &&
3812 (currSCCB->Sccb_scsistat != DATA_IN_ST)) {
3816 if (currSCCB->Sccb_XferState & F_ODD_BALL_CNT) {
3818 currSCCB->Sccb_ATC += (currSCCB->Sccb_XferCnt - 1);
3820 currSCCB->Sccb_XferCnt = 1;
3822 currSCCB->Sccb_XferState &= ~F_ODD_BALL_CNT;
3829 currSCCB->Sccb_ATC += currSCCB->Sccb_XferCnt;
3831 currSCCB->Sccb_XferCnt = 0;
3835 (currSCCB->HostStatus == SCCB_COMPLETE)) {
3837 currSCCB->HostStatus = SCCB_PARITY_ERR;
3841 FPT_hostDataXferAbort(port, p_card, currSCCB);
3871 if (!(currSCCB->Sccb_XferState & F_ALL_XFERRED)) {
3872 if (currSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
4007 struct sccb *currSCCB;
4009 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4010 if (currSCCB == NULL) {
4014 currSCCB->Sccb_scsistat = DATA_OUT_ST;
4015 currSCCB->Sccb_XferState &= ~(F_HOST_XFER_DIR | F_NO_DATA_YET);
4025 if (currSCCB->Sccb_XferCnt == 0) {
4027 if ((currSCCB->ControlByte & SCCB_DATA_XFER_OUT) &&
4028 (currSCCB->HostStatus == SCCB_COMPLETE))
4029 currSCCB->HostStatus = SCCB_DATA_OVER_RUN;
4048 struct sccb *currSCCB;
4050 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4052 if (currSCCB == NULL) {
4056 currSCCB->Sccb_scsistat = DATA_IN_ST;
4057 currSCCB->Sccb_XferState |= F_HOST_XFER_DIR;
4058 currSCCB->Sccb_XferState &= ~F_NO_DATA_YET;
4068 if (currSCCB->Sccb_XferCnt == 0) {
4070 if ((currSCCB->ControlByte & SCCB_DATA_XFER_IN) &&
4071 (currSCCB->HostStatus == SCCB_COMPLETE))
4072 currSCCB->HostStatus = SCCB_DATA_OVER_RUN;
4091 struct sccb *currSCCB;
4095 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4097 if (currSCCB->OperationCode == RESET_COMMAND) {
4099 currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
4100 currSCCB->CdbLength = SIX_BYTE_CMD;
4109 for (i = 0; i < currSCCB->CdbLength; i++) {
4111 if (currSCCB->OperationCode == RESET_COMMAND)
4117 (MPM_OP + ACOMMAND + currSCCB->Cdb[i]));
4121 if (currSCCB->CdbLength != TWELVE_BYTE_CMD)
4126 currSCCB->Sccb_scsistat = COMMAND_ST;
4164 struct sccb *currSCCB;
4167 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4169 if (currSCCB != NULL) {
4171 message = currSCCB->Sccb_scsimsg;
4172 scsiID = currSCCB->TargID;
4197 } else if (currSCCB->Sccb_scsistat == ABORT_ST) {
4198 currSCCB->HostStatus = SCCB_COMPLETE;
4199 if (FPT_BL_Card[p_card].discQ_Tbl[currSCCB->Sccb_tag] !=
4201 FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
4208 else if (currSCCB->Sccb_scsistat < COMMAND_ST) {
4211 currSCCB->Sccb_MGRFlags |= F_DEV_SELECTED;
4248 if (currSCCB != NULL) {
4253 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4256 FPT_sccbMgrTbl[p_card][currSCCB->
4258 TarLUNBusy[currSCCB->Lun] = 0;
4260 FPT_sccbMgrTbl[p_card][currSCCB->
4265 currSCCB, p_card);
4283 currSCCB->Sccb_scsimsg = SMNO_OP;
4303 struct sccb *currSCCB;
4305 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4322 message = FPT_sfm(port, currSCCB);
4328 if (currSCCB->Sccb_scsimsg != SMPARITY)
4349 struct sccb *currSCCB;
4351 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4354 if (currSCCB != NULL) {
4356 currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
4357 currSCCB->Sccb_scsistat = ABORT_ST;
4358 currSCCB->Sccb_scsimsg = SMABORT;
4376 struct sccb *currSCCB;
4378 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4380 if (currSCCB->Sccb_scsistat == DATA_IN_ST) {
4387 currSCCB->Sccb_ATC += currSCCB->Sccb_XferCnt;
4389 currSCCB->Sccb_XferCnt = 0;
4392 (currSCCB->HostStatus == SCCB_COMPLETE)) {
4393 currSCCB->HostStatus = SCCB_PARITY_ERR;
4397 FPT_hostDataXferAbort(port, p_card, currSCCB);
4416 currSCCB->Sccb_ATC += (currSCCB->Sccb_XferCnt - xfercnt);
4418 currSCCB->Sccb_XferCnt = xfercnt;
4421 (currSCCB->HostStatus == SCCB_COMPLETE)) {
4423 currSCCB->HostStatus = SCCB_PARITY_ERR;
4427 FPT_hostDataXferAbort(port, p_card, currSCCB);
4446 struct sccb *currSCCB;
4448 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4450 if (currSCCB != NULL) {
4454 if (currSCCB->OperationCode == RESET_COMMAND) {
4457 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4459 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4460 TarLUNBusy[currSCCB->Lun] = 0;
4462 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4465 FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB,
4472 else if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
4473 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus |=
4475 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
4479 else if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
4480 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus =
4481 (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4484 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
4488 else if (currSCCB->Sccb_scsistat == SELECT_Q_ST) {
4495 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4497 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4508 currSCCB->Sccb_scsistat = BUS_FREE_ST;
4510 if (!currSCCB->HostStatus) {
4511 currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
4515 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4517 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4518 TarLUNBusy[currSCCB->Lun] = 0;
4520 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4523 FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB,
4648 struct sccb *currSCCB;
4651 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4655 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUN_CA = 0;
4662 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4664 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4665 TarLUNBusy[currSCCB->Lun] = 1;
4670 [currSCCB->TargID].
4671 LunDiscQ_Idx[currSCCB->Lun]] =
4674 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4676 if (currSCCB->Sccb_tag) {
4680 FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
4689 [currSCCB->TargID].
4694 currSCCB->Sccb_MGRFlags |= F_STATUSLOADED;
4701 if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
4702 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus |=
4705 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
4710 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4712 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4713 TarLUNBusy[currSCCB->Lun] = 1;
4718 [currSCCB->TargID].
4719 LunDiscQ_Idx[currSCCB->Lun]] =
4722 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4724 if (currSCCB->Sccb_tag) {
4728 FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
4737 [currSCCB->TargID].
4745 if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
4747 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus =
4748 (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4751 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
4756 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4758 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4759 TarLUNBusy[currSCCB->Lun] = 1;
4764 [currSCCB->TargID].
4765 LunDiscQ_Idx[currSCCB->Lun]] =
4768 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4770 if (currSCCB->Sccb_tag) {
4774 FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
4783 [currSCCB->TargID].
4793 if (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4795 FPT_sccbMgrTbl[p_card][currSCCB->
4799 if (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4801 FPT_sccbMgrTbl[p_card][currSCCB->
4808 if (!(currSCCB->Sccb_XferState & F_AUTO_SENSE)) {
4810 currSCCB->SccbStatus = SCCB_ERROR;
4811 currSCCB->TargetStatus = status_byte;
4815 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4818 if (currSCCB->RequestSenseLength !=
4821 if (currSCCB->RequestSenseLength == 0)
4822 currSCCB->RequestSenseLength =
4833 [currSCCB->TargID].
4837 [currSCCB->TargID].
4838 TarLUNBusy[currSCCB->Lun] =
4847 [currSCCB->
4850 [currSCCB->Lun]] =
4854 [currSCCB->TargID].
4856 if (currSCCB->Sccb_tag) {
4863 discQ_Tbl[currSCCB->
4875 [p_card][currSCCB->
4888 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4890 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->
4893 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 0;
4895 FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB, p_card);
4921 struct sccb *currSCCB;
4923 currSCCB = pCurrCard->currentSCCB;
4925 if (currSCCB->Sccb_XferState & F_SG_XFER) {
4928 currSCCB->Sccb_sgseg += (unsigned char)SG_BUF_CNT;
4929 currSCCB->Sccb_SGoffset = 0x00;
4933 FPT_busMstrSGDataXferStart(port, currSCCB);
4940 FPT_busMstrDataXferStart(port, currSCCB);
5406 static void FPT_hostDataXferRestart(struct sccb *currSCCB)
5412 if (currSCCB->Sccb_XferState & F_SG_XFER) {
5414 currSCCB->Sccb_XferCnt = 0;
5420 while (data_count < currSCCB->Sccb_ATC) {
5423 segp = (struct blogic_sg_seg *)(currSCCB->DataPointer) +
5428 if (data_count == currSCCB->Sccb_ATC) {
5430 currSCCB->Sccb_SGoffset = 0;
5435 currSCCB->Sccb_SGoffset =
5436 data_count - currSCCB->Sccb_ATC;
5439 currSCCB->Sccb_sgseg = (unsigned short)sg_index;
5443 currSCCB->Sccb_XferCnt =
5444 currSCCB->DataLength - currSCCB->Sccb_ATC;
6995 struct sccb *currSCCB;
6998 currSCCB = FPT_BL_Card[p_card].currentSCCB;
6999 if (currSCCB != NULL) {
7000 thisTarg = (unsigned char)currSCCB->TargID;