@ -34,7 +34,7 @@
# define INCLUDE_FROM_MS_CLASS_HOST_C
# define INCLUDE_FROM_MS_CLASS_HOST_C
# include "MassStorage.h"
# include "MassStorage.h"
uint8_t MS_Host_ConfigurePipes ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , uint16_t ConfigDescriptor Length ,
uint8_t MS_Host_ConfigurePipes ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , uint16_t ConfigDescriptor Size ,
uint8_t * DeviceConfigDescriptor )
uint8_t * DeviceConfigDescriptor )
{
{
uint8_t FoundEndpoints = 0 ;
uint8_t FoundEndpoints = 0 ;
@ -44,7 +44,7 @@ uint8_t MS_Host_ConfigurePipes(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint16_
if ( DESCRIPTOR_TYPE ( DeviceConfigDescriptor ) ! = DTYPE_Configuration )
if ( DESCRIPTOR_TYPE ( DeviceConfigDescriptor ) ! = DTYPE_Configuration )
return MS_ENUMERROR_InvalidConfigDescriptor ;
return MS_ENUMERROR_InvalidConfigDescriptor ;
if ( USB_GetNextDescriptorComp ( & ConfigDescriptor Length , & DeviceConfigDescriptor ,
if ( USB_GetNextDescriptorComp ( & ConfigDescriptor Size , & DeviceConfigDescriptor ,
DComp_NextMSInterface ) ! = DESCRIPTOR_SEARCH_COMP_Found )
DComp_NextMSInterface ) ! = DESCRIPTOR_SEARCH_COMP_Found )
{
{
return MS_ENUMERROR_NoMSInterfaceFound ;
return MS_ENUMERROR_NoMSInterfaceFound ;
@ -54,7 +54,7 @@ uint8_t MS_Host_ConfigurePipes(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint16_
while ( FoundEndpoints ! = ( MS_FOUND_DATAPIPE_IN | MS_FOUND_DATAPIPE_OUT ) )
while ( FoundEndpoints ! = ( MS_FOUND_DATAPIPE_IN | MS_FOUND_DATAPIPE_OUT ) )
{
{
if ( USB_GetNextDescriptorComp ( & ConfigDescriptor Length , & DeviceConfigDescriptor ,
if ( USB_GetNextDescriptorComp ( & ConfigDescriptor Size , & DeviceConfigDescriptor ,
DComp_NextMSInterfaceEndpoint ) ! = DESCRIPTOR_SEARCH_COMP_Found )
DComp_NextMSInterfaceEndpoint ) ! = DESCRIPTOR_SEARCH_COMP_Found )
{
{
return MS_ENUMERROR_EndpointsNotFound ;
return MS_ENUMERROR_EndpointsNotFound ;
@ -127,12 +127,12 @@ static uint8_t DComp_NextMSInterfaceEndpoint(void* CurrentDescriptor)
return DESCRIPTOR_SEARCH_NotFound ;
return DESCRIPTOR_SEARCH_NotFound ;
}
}
void MS_Host_USBTask ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo )
void MS_Host_USBTask ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo )
{
{
}
}
static uint8_t MS_Host_SendCommand ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , MS_CommandBlockWrapper_t * SCSICommandBlock ,
static uint8_t MS_Host_SendCommand ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , MS_CommandBlockWrapper_t * const SCSICommandBlock ,
void * BufferPtr )
void * BufferPtr )
{
{
uint8_t ErrorCode = PIPE_RWSTREAM_NoError ;
uint8_t ErrorCode = PIPE_RWSTREAM_NoError ;
@ -164,7 +164,7 @@ static uint8_t MS_Host_SendCommand(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, MS_
return ErrorCode ;
return ErrorCode ;
}
}
static uint8_t MS_Host_WaitForDataReceived ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo )
static uint8_t MS_Host_WaitForDataReceived ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo )
{
{
uint16_t TimeoutMSRem = COMMAND_DATA_TIMEOUT_MS ;
uint16_t TimeoutMSRem = COMMAND_DATA_TIMEOUT_MS ;
@ -217,8 +217,8 @@ static uint8_t MS_Host_WaitForDataReceived(USB_ClassInfo_MS_Host_t* MSInterfaceI
return PIPE_RWSTREAM_NoError ;
return PIPE_RWSTREAM_NoError ;
}
}
static uint8_t MS_Host_SendReceiveData ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo ,
static uint8_t MS_Host_SendReceiveData ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo ,
MS_CommandBlockWrapper_t * SCSICommandBlock , void * BufferPtr )
MS_CommandBlockWrapper_t * const SCSICommandBlock , void * BufferPtr )
{
{
uint8_t ErrorCode = PIPE_RWSTREAM_NoError ;
uint8_t ErrorCode = PIPE_RWSTREAM_NoError ;
uint16_t BytesRem = SCSICommandBlock - > DataTransferLength ;
uint16_t BytesRem = SCSICommandBlock - > DataTransferLength ;
@ -261,8 +261,8 @@ static uint8_t MS_Host_SendReceiveData(USB_ClassInfo_MS_Host_t* MSInterfaceInfo,
return ErrorCode ;
return ErrorCode ;
}
}
static uint8_t MS_Host_GetReturnedStatus ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo ,
static uint8_t MS_Host_GetReturnedStatus ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo ,
MS_CommandStatusWrapper_t * SCSICommandStatus )
MS_CommandStatusWrapper_t * const SCSICommandStatus )
{
{
uint8_t ErrorCode = PIPE_RWSTREAM_NoError ;
uint8_t ErrorCode = PIPE_RWSTREAM_NoError ;
@ -287,7 +287,7 @@ static uint8_t MS_Host_GetReturnedStatus(USB_ClassInfo_MS_Host_t* MSInterfaceInf
return ErrorCode ;
return ErrorCode ;
}
}
uint8_t MS_Host_ResetMSInterface ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo )
uint8_t MS_Host_ResetMSInterface ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo )
{
{
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
return HOST_SENDCONTROL_DeviceDisconnect ;
return HOST_SENDCONTROL_DeviceDisconnect ;
@ -306,7 +306,7 @@ uint8_t MS_Host_ResetMSInterface(USB_ClassInfo_MS_Host_t* MSInterfaceInfo)
return USB_Host_SendControlRequest ( NULL ) ;
return USB_Host_SendControlRequest ( NULL ) ;
}
}
uint8_t MS_Host_GetMaxLUN ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , uint8_t * MaxLUNIndex )
uint8_t MS_Host_GetMaxLUN ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , uint8_t * const MaxLUNIndex )
{
{
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
return HOST_SENDCONTROL_DeviceDisconnect ;
return HOST_SENDCONTROL_DeviceDisconnect ;
@ -330,7 +330,8 @@ uint8_t MS_Host_GetMaxLUN(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t* Max
return ErrorCode ;
return ErrorCode ;
}
}
uint8_t MS_Host_GetInquiryData ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , uint8_t LUNIndex , SCSI_Inquiry_Response_t * InquiryData )
uint8_t MS_Host_GetInquiryData ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , const uint8_t LUNIndex ,
SCSI_Inquiry_Response_t * const InquiryData )
{
{
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
return HOST_SENDCONTROL_DeviceDisconnect ;
return HOST_SENDCONTROL_DeviceDisconnect ;
@ -366,7 +367,7 @@ uint8_t MS_Host_GetInquiryData(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t
return PIPE_RWSTREAM_NoError ;
return PIPE_RWSTREAM_NoError ;
}
}
uint8_t MS_Host_TestUnitReady ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , uint8_t LUNIndex )
uint8_t MS_Host_TestUnitReady ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , const uint8_t LUNIndex )
{
{
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
return HOST_SENDCONTROL_DeviceDisconnect ;
return HOST_SENDCONTROL_DeviceDisconnect ;
@ -402,8 +403,8 @@ uint8_t MS_Host_TestUnitReady(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t
return PIPE_RWSTREAM_NoError ;
return PIPE_RWSTREAM_NoError ;
}
}
uint8_t MS_Host_ReadDeviceCapacity ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , uint8_t LUNIndex ,
uint8_t MS_Host_ReadDeviceCapacity ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , const uint8_t LUNIndex ,
SCSI_Capacity_t * DeviceCapacity )
SCSI_Capacity_t * const DeviceCapacity )
{
{
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
return HOST_SENDCONTROL_DeviceDisconnect ;
return HOST_SENDCONTROL_DeviceDisconnect ;
@ -446,8 +447,8 @@ uint8_t MS_Host_ReadDeviceCapacity(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uin
return PIPE_RWSTREAM_NoError ;
return PIPE_RWSTREAM_NoError ;
}
}
uint8_t MS_Host_RequestSense ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , uint8_t LUNIndex ,
uint8_t MS_Host_RequestSense ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , const uint8_t LUNIndex ,
SCSI_Request_Sense_Response_t * SenseData )
SCSI_Request_Sense_Response_t * const SenseData )
{
{
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
return HOST_SENDCONTROL_DeviceDisconnect ;
return HOST_SENDCONTROL_DeviceDisconnect ;
@ -483,7 +484,8 @@ uint8_t MS_Host_RequestSense(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t L
return PIPE_RWSTREAM_NoError ;
return PIPE_RWSTREAM_NoError ;
}
}
uint8_t MS_Host_PreventAllowMediumRemoval ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , uint8_t LUNIndex , bool PreventRemoval )
uint8_t MS_Host_PreventAllowMediumRemoval ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , const uint8_t LUNIndex ,
const bool PreventRemoval )
{
{
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
return HOST_SENDCONTROL_DeviceDisconnect ;
return HOST_SENDCONTROL_DeviceDisconnect ;
@ -519,8 +521,8 @@ uint8_t MS_Host_PreventAllowMediumRemoval(USB_ClassInfo_MS_Host_t* MSInterfaceIn
return PIPE_RWSTREAM_NoError ;
return PIPE_RWSTREAM_NoError ;
}
}
uint8_t MS_Host_ReadDeviceBlocks ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , uint8_t LUNIndex , uint32_t BlockAddress ,
uint8_t MS_Host_ReadDeviceBlocks ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , const uint8_t LUNIndex , const uint32_t BlockAddress ,
uint8_t Blocks , uint16_t BlockSize , void * BlockBuffer )
const uint8_t Blocks , const uint16_t BlockSize , void * BlockBuffer )
{
{
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
return HOST_SENDCONTROL_DeviceDisconnect ;
return HOST_SENDCONTROL_DeviceDisconnect ;
@ -560,8 +562,8 @@ uint8_t MS_Host_ReadDeviceBlocks(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8
return PIPE_RWSTREAM_NoError ;
return PIPE_RWSTREAM_NoError ;
}
}
uint8_t MS_Host_WriteDeviceBlocks ( USB_ClassInfo_MS_Host_t * MSInterfaceInfo , uint8_t LUNIndex , uint32_t BlockAddress ,
uint8_t MS_Host_WriteDeviceBlocks ( USB_ClassInfo_MS_Host_t * const MSInterfaceInfo , const uint8_t LUNIndex , const uint32_t BlockAddress ,
uint8_t Blocks , uint16_t BlockSize , void * BlockBuffer )
const uint8_t Blocks , const uint16_t BlockSize , void * BlockBuffer )
{
{
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
if ( ( USB_HostState ! = HOST_STATE_Configured ) | | ! ( MSInterfaceInfo - > State . IsActive ) )
return HOST_SENDCONTROL_DeviceDisconnect ;
return HOST_SENDCONTROL_DeviceDisconnect ;