Token = PIPE_TOKEN_OUT;
Type = EP_TYPE_BULK;
DoubleBanked = MSInterfaceInfo->Config.DataOUTPipeDoubleBank;
-
+
MSInterfaceInfo->State.DataOUTPipeSize = DataOUTEndpoint->EndpointSize;
}
else
{
return ErrorCode;
}
-
+
Pipe_ClearOUT();
Pipe_WaitUntilReady();
if (BufferPtr != NULL)
{
ErrorCode = MS_Host_SendReceiveData(MSInterfaceInfo, SCSICommandBlock, (void*)BufferPtr);
-
+
if ((ErrorCode != PIPE_RWSTREAM_NoError) && (ErrorCode != PIPE_RWSTREAM_PipeStalled))
{
Pipe_Freeze();
return ErrorCode;
}
}
-
+
MS_CommandStatusWrapper_t SCSIStatusBlock;
return MS_Host_GetReturnedStatus(MSInterfaceInfo, &SCSIStatusBlock);
}
if ((ErrorCode = USB_Host_SendControlRequest(NULL)) != HOST_SENDCONTROL_Successful)
return ErrorCode;
-
+
Pipe_SelectPipe(MSInterfaceInfo->Config.DataINPipeNumber);
-
+
if ((ErrorCode = USB_Host_ClearEndpointStall(Pipe_GetBoundEndpointAddress())) != HOST_SENDCONTROL_Successful)
return ErrorCode;