aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/Class/Host/CDC.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-08-31 13:58:03 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-08-31 13:58:03 +0000
commitdac7b046fd5d5c5332ca82cd538dd2c50f9128fd (patch)
tree8de12e9d7093fc800fb1046c568e260c83dcc633 /LUFA/Drivers/USB/Class/Host/CDC.c
parentcf2776531c04b0ebe4fdd9d4ef5324dacefd5639 (diff)
downloadlufa-dac7b046fd5d5c5332ca82cd538dd2c50f9128fd.tar.gz
lufa-dac7b046fd5d5c5332ca82cd538dd2c50f9128fd.tar.bz2
lufa-dac7b046fd5d5c5332ca82cd538dd2c50f9128fd.zip
Add return codes to the CDC Host Class driver String/Byte transmission functions.
Diffstat (limited to 'LUFA/Drivers/USB/Class/Host/CDC.c')
-rw-r--r--LUFA/Drivers/USB/Class/Host/CDC.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/LUFA/Drivers/USB/Class/Host/CDC.c b/LUFA/Drivers/USB/Class/Host/CDC.c
index e75bee2d0..cb70808a1 100644
--- a/LUFA/Drivers/USB/Class/Host/CDC.c
+++ b/LUFA/Drivers/USB/Class/Host/CDC.c
@@ -256,21 +256,27 @@ uint8_t CDC_Host_SendControlLineStateChange(USB_ClassInfo_CDC_Host_t* CDCInterfa
return USB_Host_SendControlRequest(NULL);
}
-void CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, char* Data, uint16_t Length)
+uint8_t CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, char* Data, uint16_t Length)
{
if ((USB_HostState != HOST_STATE_Configured) || !(CDCInterfaceInfo->State.Active))
return;
+ uint8_t ErrorCode;
+
Pipe_SelectPipe(CDCInterfaceInfo->Config.DataOUTPipeNumber);
Pipe_Unfreeze();
- Pipe_Write_Stream_LE(Data, Length, NO_STREAM_CALLBACK);
+ ErrorCode = Pipe_Write_Stream_LE(Data, Length, NO_STREAM_CALLBACK);
Pipe_Freeze();
+
+ return ErrorCode;
}
-void CDC_Host_SendByte(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, uint8_t Data)
+uint8_t CDC_Host_SendByte(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, uint8_t Data)
{
if ((USB_HostState != HOST_STATE_Configured) || !(CDCInterfaceInfo->State.Active))
return;
+
+ uint8_t ErrorCode = PIPE_READYWAIT_NoError;
Pipe_SelectPipe(CDCInterfaceInfo->Config.DataOUTPipeNumber);
Pipe_Unfreeze();
@@ -278,11 +284,13 @@ void CDC_Host_SendByte(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo, uint8_t Data)
if (!(Pipe_IsReadWriteAllowed()))
{
Pipe_ClearOUT();
- Pipe_WaitUntilReady();
+ ErrorCode = Pipe_WaitUntilReady();
}
Pipe_Write_Byte(Data);
Pipe_Freeze();
+
+ return ErrorCode;
}
uint16_t CDC_Host_BytesReceived(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo)