Lines Matching defs:currSCCB
844 static void FPT_hostDataXferRestart(struct sccb *currSCCB);
1714 struct sccb *currSCCB;
1737 currSCCB = pCurrCard->currentSCCB;
1790 currSCCB->Sccb_XferState |= F_NO_DATA_YET;
1792 currSCCB->Sccb_savedATC = currSCCB->Sccb_ATC;
1795 currSCCB->Sccb_scsistat = DISCONNECT_ST;
1796 FPT_queueDisconnect(currSCCB, thisCard);
1842 currSCCB->Sccb_XferState |=
1844 currSCCB->Sccb_savedATC =
1845 currSCCB->Sccb_ATC;
1850 currSCCB->Sccb_scsistat = DISCONNECT_ST;
1851 FPT_queueDisconnect(currSCCB, thisCard);
1914 currSCCB);
2282 struct sccb *currSCCB;
2287 currSCCB = CurrCard->currentSCCB;
2288 target = currSCCB->TargID;
2295 currSCCB->ControlByte &= ~F_USE_CMD_Q;
2300 lun = currSCCB->Lun;
2305 if (!(currSCCB->ControlByte & F_USE_CMD_Q)) {
2348 || (!(currSCCB->ControlByte & F_USE_CMD_Q)))) {
2361 CurrCard->discQ_Tbl[lastTag] = currSCCB;
2379 if (currSCCB->OperationCode == RESET_COMMAND) {
2381 (currSCCB->
2386 currSCCB->Sccb_scsimsg = TARGET_RESET;
2390 currSCCB->Sccb_scsistat = SELECT_BDR_ST;
2406 else if (currSCCB->Sccb_scsistat == ABORT_ST) {
2408 (currSCCB->
2415 char)(currSCCB->
2421 (MPM_OP + AMSG_OUT + currSCCB->Sccb_tag));
2431 currSCCB->Sccb_scsistat = SELECT_WN_ST;
2437 currSCCB->Sccb_scsistat = SELECT_SN_ST;
2442 if (currSCCB->ControlByte & F_USE_CMD_Q) {
2448 currSCCB->ControlByte &= ~F_USE_CMD_Q;
2457 currSCCB->Sccb_idmsg));
2464 currSCCB->Sccb_scsistat = SELECT_ST;
2472 currSCCB->Sccb_idmsg));
2476 (((unsigned char)(currSCCB->
2491 currSCCB->Sccb_tag = lastTag;
2493 currSCCB;
2506 currSCCB->Sccb_scsistat = SELECT_Q_ST;
2519 (MPM_OP + AMSG_OUT + currSCCB->Sccb_idmsg));
2521 currSCCB->Sccb_scsistat = SELECT_ST;
2527 theCCB = (unsigned char *)&currSCCB->Cdb[0];
2531 for (i = 0; i < currSCCB->CdbLength; i++) {
2537 if (currSCCB->CdbLength != TWELVE_BYTE_CMD)
2549 if (!(currSCCB->Sccb_MGRFlags & F_DEV_SELECTED)) {
2581 struct sccb *currSCCB;
2590 currSCCB = pCurrCard->currentSCCB;
2591 if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
2593 currSCCB->Sccb_scsistat = BUS_FREE_ST;
2595 if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
2597 currSCCB->Sccb_scsistat = BUS_FREE_ST;
2602 currTar_Info->TarLUNBusy[currSCCB->Lun] = 0;
2603 if (currSCCB->Sccb_scsistat != ABORT_ST) {
2606 LunDiscQ_Idx[currSCCB->
2612 if (currSCCB->Sccb_tag) {
2613 if (currSCCB->Sccb_scsistat != ABORT_ST) {
2615 pCurrCard->discQ_Tbl[currSCCB->
2619 if (currSCCB->Sccb_scsistat != ABORT_ST) {
2859 struct sccb *currSCCB;
2864 currSCCB = CurrCard->currentSCCB;
2866 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
2869 if (!(currSCCB->Sccb_XferState & F_NO_DATA_YET)) {
2870 currSCCB->Sccb_ATC = currSCCB->Sccb_savedATC;
2872 FPT_hostDataXferRestart(currSCCB);
2882 if (currSCCB->Sccb_scsistat == SELECT_Q_ST) {
2903 if ((currSCCB->Sccb_scsistat == SELECT_SN_ST) ||
2904 (currSCCB->Sccb_scsistat == SELECT_WN_ST) ||
2918 if (currSCCB->Lun == 0x00) {
2919 if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
2928 else if (currSCCB->Sccb_scsistat ==
2949 currSCCB->ControlByte &= ~F_USE_CMD_Q;
2951 CurrCard->discQ_Tbl[currSCCB->
2953 currSCCB->Sccb_tag = 0x00;
2960 if (currSCCB->Lun == 0x00) {
2973 currTar_Info->TarLUNBusy[currSCCB->
2978 currSCCB->ControlByte &=
3005 FPT_shandem(port, p_card, currSCCB);
3012 message = FPT_sfm(port, currSCCB);
3014 if (currSCCB->Sccb_scsimsg != MSG_PARITY_ERROR)
3022 currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
3023 currSCCB->Sccb_scsimsg = MESSAGE_REJECT;
3108 struct sccb *currSCCB;
3111 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3112 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
3118 (currSCCB->
3189 struct sccb *currSCCB;
3192 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3193 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
3195 sync_msg = FPT_sfm(port, currSCCB);
3197 if ((sync_msg == 0x00) && (currSCCB->Sccb_scsimsg == MSG_PARITY_ERROR)) {
3205 offset = FPT_sfm(port, currSCCB);
3207 if ((offset == 0x00) && (currSCCB->Sccb_scsimsg == MSG_PARITY_ERROR)) {
3282 FPT_sssyncv(port, currSCCB->TargID, sync_reg, currTar_Info);
3284 if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
3350 struct sccb *currSCCB;
3353 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3354 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
3360 (currSCCB->
3406 struct sccb *currSCCB;
3409 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3410 currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
3412 width = FPT_sfm(port, currSCCB);
3414 if ((width == 0x00) && (currSCCB->Sccb_scsimsg == MSG_PARITY_ERROR)) {
3431 FPT_sssyncv(port, currSCCB->TargID, width, currTar_Info);
3433 if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
3443 currSCCB->Sccb_scsistat = SELECT_SN_ST;
3650 struct sccb *currSCCB;
3652 currSCCB = pCurrCard->currentSCCB;
3654 currSCCB->Save_CdbLen = currSCCB->CdbLength;
3658 currSCCB->Save_Cdb[i] = currSCCB->Cdb[i];
3661 currSCCB->CdbLength = SIX_BYTE_CMD;
3662 currSCCB->Cdb[0] = REQUEST_SENSE;
3663 currSCCB->Cdb[1] = currSCCB->Cdb[1] & (unsigned char)0xE0; /*Keep LUN. */
3664 currSCCB->Cdb[2] = 0x00;
3665 currSCCB->Cdb[3] = 0x00;
3666 currSCCB->Cdb[4] = currSCCB->RequestSenseLength;
3667 currSCCB->Cdb[5] = 0x00;
3669 currSCCB->Sccb_XferCnt = (u32)currSCCB->RequestSenseLength;
3671 currSCCB->Sccb_ATC = 0x00;
3673 currSCCB->Sccb_XferState |= F_AUTO_SENSE;
3675 currSCCB->Sccb_XferState &= ~F_SG_XFER;
3677 currSCCB->Sccb_idmsg = currSCCB->Sccb_idmsg & ~(unsigned char)DISC_PRIV;
3679 currSCCB->ControlByte = 0x00;
3681 currSCCB->Sccb_MGRFlags &= F_STATUSLOADED;
3780 struct sccb *currSCCB;
3782 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3784 if ((currSCCB->Sccb_scsistat != DATA_OUT_ST) &&
3785 (currSCCB->Sccb_scsistat != DATA_IN_ST)) {
3789 if (currSCCB->Sccb_XferState & F_ODD_BALL_CNT) {
3791 currSCCB->Sccb_ATC += (currSCCB->Sccb_XferCnt - 1);
3793 currSCCB->Sccb_XferCnt = 1;
3795 currSCCB->Sccb_XferState &= ~F_ODD_BALL_CNT;
3802 currSCCB->Sccb_ATC += currSCCB->Sccb_XferCnt;
3804 currSCCB->Sccb_XferCnt = 0;
3808 (currSCCB->HostStatus == SCCB_COMPLETE)) {
3810 currSCCB->HostStatus = SCCB_PARITY_ERR;
3814 FPT_hostDataXferAbort(port, p_card, currSCCB);
3844 if (!(currSCCB->Sccb_XferState & F_ALL_XFERRED)) {
3845 if (currSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
3976 struct sccb *currSCCB;
3978 currSCCB = FPT_BL_Card[p_card].currentSCCB;
3979 if (currSCCB == NULL) {
3983 currSCCB->Sccb_scsistat = DATA_OUT_ST;
3984 currSCCB->Sccb_XferState &= ~(F_HOST_XFER_DIR | F_NO_DATA_YET);
3994 if (currSCCB->Sccb_XferCnt == 0) {
3996 if ((currSCCB->ControlByte & SCCB_DATA_XFER_OUT) &&
3997 (currSCCB->HostStatus == SCCB_COMPLETE))
3998 currSCCB->HostStatus = SCCB_DATA_OVER_RUN;
4017 struct sccb *currSCCB;
4019 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4021 if (currSCCB == NULL) {
4025 currSCCB->Sccb_scsistat = DATA_IN_ST;
4026 currSCCB->Sccb_XferState |= F_HOST_XFER_DIR;
4027 currSCCB->Sccb_XferState &= ~F_NO_DATA_YET;
4037 if (currSCCB->Sccb_XferCnt == 0) {
4039 if ((currSCCB->ControlByte & SCCB_DATA_XFER_IN) &&
4040 (currSCCB->HostStatus == SCCB_COMPLETE))
4041 currSCCB->HostStatus = SCCB_DATA_OVER_RUN;
4060 struct sccb *currSCCB;
4064 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4066 if (currSCCB->OperationCode == RESET_COMMAND) {
4068 currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
4069 currSCCB->CdbLength = SIX_BYTE_CMD;
4078 for (i = 0; i < currSCCB->CdbLength; i++) {
4080 if (currSCCB->OperationCode == RESET_COMMAND)
4086 (MPM_OP + ACOMMAND + currSCCB->Cdb[i]));
4090 if (currSCCB->CdbLength != TWELVE_BYTE_CMD)
4095 currSCCB->Sccb_scsistat = COMMAND_ST;
4133 struct sccb *currSCCB;
4136 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4138 if (currSCCB != NULL) {
4140 message = currSCCB->Sccb_scsimsg;
4141 scsiID = currSCCB->TargID;
4166 } else if (currSCCB->Sccb_scsistat == ABORT_ST) {
4167 currSCCB->HostStatus = SCCB_COMPLETE;
4168 if (FPT_BL_Card[p_card].discQ_Tbl[currSCCB->Sccb_tag] !=
4170 FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
4177 else if (currSCCB->Sccb_scsistat < COMMAND_ST) {
4180 currSCCB->Sccb_MGRFlags |= F_DEV_SELECTED;
4217 if (currSCCB != NULL) {
4222 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4225 FPT_sccbMgrTbl[p_card][currSCCB->
4227 TarLUNBusy[currSCCB->Lun] = 0;
4229 FPT_sccbMgrTbl[p_card][currSCCB->
4234 currSCCB, p_card);
4252 currSCCB->Sccb_scsimsg = NOP;
4272 struct sccb *currSCCB;
4274 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4291 message = FPT_sfm(port, currSCCB);
4297 if (currSCCB->Sccb_scsimsg != MSG_PARITY_ERROR)
4318 struct sccb *currSCCB;
4320 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4323 if (currSCCB != NULL) {
4325 currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
4326 currSCCB->Sccb_scsistat = ABORT_ST;
4327 currSCCB->Sccb_scsimsg = ABORT_TASK_SET;
4345 struct sccb *currSCCB;
4347 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4349 if (currSCCB->Sccb_scsistat == DATA_IN_ST) {
4356 currSCCB->Sccb_ATC += currSCCB->Sccb_XferCnt;
4358 currSCCB->Sccb_XferCnt = 0;
4361 (currSCCB->HostStatus == SCCB_COMPLETE)) {
4362 currSCCB->HostStatus = SCCB_PARITY_ERR;
4366 FPT_hostDataXferAbort(port, p_card, currSCCB);
4385 currSCCB->Sccb_ATC += (currSCCB->Sccb_XferCnt - xfercnt);
4387 currSCCB->Sccb_XferCnt = xfercnt;
4390 (currSCCB->HostStatus == SCCB_COMPLETE)) {
4392 currSCCB->HostStatus = SCCB_PARITY_ERR;
4396 FPT_hostDataXferAbort(port, p_card, currSCCB);
4415 struct sccb *currSCCB;
4417 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4419 if (currSCCB != NULL) {
4423 if (currSCCB->OperationCode == RESET_COMMAND) {
4426 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4428 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4429 TarLUNBusy[currSCCB->Lun] = 0;
4431 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4434 FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB,
4441 else if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
4442 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus |=
4444 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
4448 else if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
4449 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus =
4450 (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4453 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
4457 else if (currSCCB->Sccb_scsistat == SELECT_Q_ST) {
4464 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4466 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4477 currSCCB->Sccb_scsistat = BUS_FREE_ST;
4479 if (!currSCCB->HostStatus) {
4480 currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
4484 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4486 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4487 TarLUNBusy[currSCCB->Lun] = 0;
4489 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4492 FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB,
4617 struct sccb *currSCCB;
4620 currSCCB = FPT_BL_Card[p_card].currentSCCB;
4624 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUN_CA = 0;
4631 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4633 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4634 TarLUNBusy[currSCCB->Lun] = 1;
4639 [currSCCB->TargID].
4640 LunDiscQ_Idx[currSCCB->Lun]] =
4643 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4645 if (currSCCB->Sccb_tag) {
4649 FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
4658 [currSCCB->TargID].
4663 currSCCB->Sccb_MGRFlags |= F_STATUSLOADED;
4670 if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
4671 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus |=
4674 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
4679 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4681 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4682 TarLUNBusy[currSCCB->Lun] = 1;
4687 [currSCCB->TargID].
4688 LunDiscQ_Idx[currSCCB->Lun]] =
4691 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4693 if (currSCCB->Sccb_tag) {
4697 FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
4706 [currSCCB->TargID].
4714 if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
4716 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus =
4717 (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4720 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
4725 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4727 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4728 TarLUNBusy[currSCCB->Lun] = 1;
4733 [currSCCB->TargID].
4734 LunDiscQ_Idx[currSCCB->Lun]] =
4737 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4739 if (currSCCB->Sccb_tag) {
4743 FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
4752 [currSCCB->TargID].
4762 if (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4764 FPT_sccbMgrTbl[p_card][currSCCB->
4768 if (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4770 FPT_sccbMgrTbl[p_card][currSCCB->
4777 if (!(currSCCB->Sccb_XferState & F_AUTO_SENSE)) {
4779 currSCCB->SccbStatus = SCCB_ERROR;
4780 currSCCB->TargetStatus = status_byte;
4784 FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4787 if (currSCCB->RequestSenseLength !=
4790 if (currSCCB->RequestSenseLength == 0)
4791 currSCCB->RequestSenseLength =
4802 [currSCCB->TargID].
4806 [currSCCB->TargID].
4807 TarLUNBusy[currSCCB->Lun] =
4816 [currSCCB->
4819 [currSCCB->Lun]] =
4823 [currSCCB->TargID].
4825 if (currSCCB->Sccb_tag) {
4832 discQ_Tbl[currSCCB->
4844 [p_card][currSCCB->
4857 ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
4859 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->
4862 FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 0;
4864 FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB, p_card);
4890 struct sccb *currSCCB;
4892 currSCCB = pCurrCard->currentSCCB;
4894 if (currSCCB->Sccb_XferState & F_SG_XFER) {
4897 currSCCB->Sccb_sgseg += (unsigned char)SG_BUF_CNT;
4898 currSCCB->Sccb_SGoffset = 0x00;
4902 FPT_busMstrSGDataXferStart(port, currSCCB);
4909 FPT_busMstrDataXferStart(port, currSCCB);
5375 static void FPT_hostDataXferRestart(struct sccb *currSCCB)
5381 if (currSCCB->Sccb_XferState & F_SG_XFER) {
5383 currSCCB->Sccb_XferCnt = 0;
5389 while (data_count < currSCCB->Sccb_ATC) {
5392 segp = (struct blogic_sg_seg *)(currSCCB->DataPointer) +
5397 if (data_count == currSCCB->Sccb_ATC) {
5399 currSCCB->Sccb_SGoffset = 0;
5404 currSCCB->Sccb_SGoffset =
5405 data_count - currSCCB->Sccb_ATC;
5408 currSCCB->Sccb_sgseg = (unsigned short)sg_index;
5412 currSCCB->Sccb_XferCnt =
5413 currSCCB->DataLength - currSCCB->Sccb_ATC;
6964 struct sccb *currSCCB;
6967 currSCCB = FPT_BL_Card[p_card].currentSCCB;
6968 if (currSCCB != NULL) {
6969 thisTarg = (unsigned char)currSCCB->TargID;