Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 2309 of file BusLogic958.c.
Referenced by BusLogic_ProcessCompletedCCBs().
{ UCHAR HostStatus = 0; // Namita 2Oct CDROM issue if (TargetDeviceStatus != BusLogic_OperationGood && (HostAdapterStatus == BusLogic_CommandCompletedNormally || HostAdapterStatus == BusLogic_LinkedCommandCompleted || HostAdapterStatus == BusLogic_LinkedCommandCompletedWithFlag)) { switch(TargetDeviceStatus) { case BusLogic_CheckCondition: { HostStatus = SRB_STATUS_ERROR; if(SenseDataLength != BusLogic_DisableAutoReqSense) HostStatus |= SRB_STATUS_AUTOSENSE_VALID; break; } case BusLogic_DeviceBusy: { HostStatus = SRB_STATUS_BUSY; break; } case BusLogic_OperationGood: { HostStatus = SRB_STATUS_SUCCESS; break; } } } else { switch (HostAdapterStatus) { case BusLogic_CommandCompletedNormally: case BusLogic_LinkedCommandCompleted: case BusLogic_LinkedCommandCompletedWithFlag: { HostStatus = SRB_STATUS_SUCCESS; break; } case BusLogic_SCSISelectionTimeout: { HostStatus = SRB_STATUS_SELECTION_TIMEOUT; break; } case BusLogic_InvalidOutgoingMailboxActionCode: case BusLogic_InvalidCommandOperationCode: case BusLogic_InvalidCommandParameter: DebugPrint((WARNING, "\n BusLogic - Driver Protocol Error 0x%02X\n", HostAdapterStatus)); case BusLogic_DataUnderRun: case BusLogic_DataOverRun: // SRB_STATUS_DATA_OVERRUN case BusLogic_LinkedCCBhasInvalidLUN: case BusLogic_TaggedQueuingMessageRejected: // SRB_STATUS_MESSAGE_REJECTED case BusLogic_TargetDeviceReconnectedImproperly: case BusLogic_AbortQueueGenerated: case BusLogic_HostAdapterSoftwareError: case BusLogic_HostAdapterHardwareTimeoutError: // SRB_STATUS_TIMEOUT { HostStatus = SRB_STATUS_ERROR; break; } case BusLogic_TargetFailedResponseToATN: case BusLogic_HostAdapterAssertedRST: case BusLogic_OtherDeviceAssertedRST: case BusLogic_HostAdapterAssertedBusDeviceReset: { HostStatus = SRB_STATUS_BUS_RESET; break; } case BusLogic_SCSIParityErrorDetected: { HostStatus = SRB_STATUS_PARITY_ERROR; break; } case BusLogic_UnexpectedBusFree: { HostStatus = SRB_STATUS_UNEXPECTED_BUS_FREE; break; } case BusLogic_InvalidBusPhaseRequested: { HostStatus = SRB_STATUS_PHASE_SEQUENCE_FAILURE; break; } case BusLogic_AutoRequestSenseFailed: { HostStatus = SRB_STATUS_REQUEST_SENSE_FAILED; break; } case BusLogic_UnsupportedMessageReceived: { HostStatus = SRB_STATUS_INVALID_REQUEST; break; } case BusLogic_HostAdapterHardwareFailed: { HostStatus = SRB_STATUS_NO_HBA; break; } default: { DebugPrint((WARNING, "\n BusLogic - Unknown HBA Status 0x%02X\n", HostAdapterStatus)); HostStatus = SRB_STATUS_ERROR; break; } } } return HostStatus; }// end BusLogic_ComputeResultCode