Fix mismatched aliased event and event stub function prototypes.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / CDCClassHost.c
index ea8cb84..83cf6ea 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2018.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2018  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -102,23 +102,23 @@ uint8_t CDC_Host_ConfigurePipes(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo
        CDCInterfaceInfo->Config.DataINPipe.Size  = le16_to_cpu(DataINEndpoint->EndpointSize);
        CDCInterfaceInfo->Config.DataINPipe.EndpointAddress = DataINEndpoint->EndpointAddress;
        CDCInterfaceInfo->Config.DataINPipe.Type  = EP_TYPE_BULK;
-       
+
        CDCInterfaceInfo->Config.DataOUTPipe.Size = le16_to_cpu(DataOUTEndpoint->EndpointSize);
        CDCInterfaceInfo->Config.DataOUTPipe.EndpointAddress = DataOUTEndpoint->EndpointAddress;
        CDCInterfaceInfo->Config.DataOUTPipe.Type = EP_TYPE_BULK;
-       
+
        CDCInterfaceInfo->Config.NotificationPipe.Size = le16_to_cpu(NotificationEndpoint->EndpointSize);
        CDCInterfaceInfo->Config.NotificationPipe.EndpointAddress = NotificationEndpoint->EndpointAddress;
        CDCInterfaceInfo->Config.NotificationPipe.Type = EP_TYPE_INTERRUPT;
 
        if (!(Pipe_ConfigurePipeTable(&CDCInterfaceInfo->Config.DataINPipe, 1)))
-         return false;
-       
+         return CDC_ENUMERROR_PipeConfigurationFailed;
+
        if (!(Pipe_ConfigurePipeTable(&CDCInterfaceInfo->Config.DataOUTPipe, 1)))
-         return false;
+         return CDC_ENUMERROR_PipeConfigurationFailed;
 
        if (!(Pipe_ConfigurePipeTable(&CDCInterfaceInfo->Config.NotificationPipe, 1)))
-         return false;
+         return CDC_ENUMERROR_PipeConfigurationFailed;
 
        CDCInterfaceInfo->State.ControlInterfaceNumber = CDCControlInterface->InterfaceNumber;
        CDCInterfaceInfo->State.ControlLineStates.HostToDevice = (CDC_CONTROL_LINE_OUT_RTS | CDC_CONTROL_LINE_OUT_DTR);
@@ -276,9 +276,8 @@ uint8_t CDC_Host_SendBreak(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
        return USB_Host_SendControlRequest(NULL);
 }
 
-uint8_t CDC_Host_SendData(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
-                          const uint8_t* const Buffer,
-                          const uint16_t Length)
+uint8_t CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
+                            const char* const String)
 {
        if ((USB_HostState != HOST_STATE_Configured) || !(CDCInterfaceInfo->State.IsActive))
          return PIPE_READYWAIT_DeviceDisconnected;
@@ -288,14 +287,15 @@ uint8_t CDC_Host_SendData(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
        Pipe_SelectPipe(CDCInterfaceInfo->Config.DataOUTPipe.Address);
 
        Pipe_Unfreeze();
-       ErrorCode = Pipe_Write_Stream_LE(Buffer, Length, NULL);
+       ErrorCode = Pipe_Write_Stream_LE(String, strlen(String), NULL);
        Pipe_Freeze();
 
        return ErrorCode;
 }
 
-uint8_t CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
-                            const char* const String)
+uint8_t CDC_Host_SendData(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
+                          const void* const Buffer,
+                          const uint16_t Length)
 {
        if ((USB_HostState != HOST_STATE_Configured) || !(CDCInterfaceInfo->State.IsActive))
          return PIPE_READYWAIT_DeviceDisconnected;
@@ -305,12 +305,49 @@ uint8_t CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
        Pipe_SelectPipe(CDCInterfaceInfo->Config.DataOUTPipe.Address);
 
        Pipe_Unfreeze();
-       ErrorCode = Pipe_Write_Stream_LE(String, strlen(String), NULL);
+       ErrorCode = Pipe_Write_Stream_LE(Buffer, Length, NULL);
        Pipe_Freeze();
 
        return ErrorCode;
 }
 
+#if defined(ARCH_HAS_FLASH_ADDRESS_SPACE)
+       uint8_t CDC_Host_SendString_P(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
+                                     const char* const String)
+       {
+               if ((USB_HostState != HOST_STATE_Configured) || !(CDCInterfaceInfo->State.IsActive))
+                 return PIPE_READYWAIT_DeviceDisconnected;
+
+               uint8_t ErrorCode;
+
+               Pipe_SelectPipe(CDCInterfaceInfo->Config.DataOUTPipe.Address);
+
+               Pipe_Unfreeze();
+               ErrorCode = Pipe_Write_PStream_LE(String, strlen_P(String), NULL);
+               Pipe_Freeze();
+
+               return ErrorCode;
+       }
+
+       uint8_t CDC_Host_SendData_P(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
+                                   const void* const Buffer,
+                                   const uint16_t Length)
+       {
+               if ((USB_HostState != HOST_STATE_Configured) || !(CDCInterfaceInfo->State.IsActive))
+                 return PIPE_READYWAIT_DeviceDisconnected;
+
+               uint8_t ErrorCode;
+
+               Pipe_SelectPipe(CDCInterfaceInfo->Config.DataOUTPipe.Address);
+
+               Pipe_Unfreeze();
+               ErrorCode = Pipe_Write_PStream_LE(Buffer, Length, NULL);
+               Pipe_Freeze();
+
+               return ErrorCode;
+       }
+#endif
+
 uint8_t CDC_Host_SendByte(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
                           const uint8_t Data)
 {
@@ -421,55 +458,54 @@ uint8_t CDC_Host_Flush(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
 }
 
 #if defined(FDEV_SETUP_STREAM)
-void CDC_Host_CreateStream(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
-                           FILE* const Stream)
-{
-       *Stream = (FILE)FDEV_SETUP_STREAM(CDC_Host_putchar, CDC_Host_getchar, _FDEV_SETUP_RW);
-       fdev_set_udata(Stream, CDCInterfaceInfo);
-}
-
-void CDC_Host_CreateBlockingStream(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
-                                   FILE* const Stream)
-{
-       *Stream = (FILE)FDEV_SETUP_STREAM(CDC_Host_putchar, CDC_Host_getchar_Blocking, _FDEV_SETUP_RW);
-       fdev_set_udata(Stream, CDCInterfaceInfo);
-}
+       void CDC_Host_CreateStream(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
+                                  FILE* const Stream)
+       {
+               *Stream = (FILE)FDEV_SETUP_STREAM(CDC_Host_putchar, CDC_Host_getchar, _FDEV_SETUP_RW);
+               fdev_set_udata(Stream, CDCInterfaceInfo);
+       }
 
-static int CDC_Host_putchar(char c,
-                            FILE* Stream)
-{
-       return CDC_Host_SendByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream), c) ? _FDEV_ERR : 0;
-}
+       void CDC_Host_CreateBlockingStream(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo,
+                                          FILE* const Stream)
+       {
+               *Stream = (FILE)FDEV_SETUP_STREAM(CDC_Host_putchar, CDC_Host_getchar_Blocking, _FDEV_SETUP_RW);
+               fdev_set_udata(Stream, CDCInterfaceInfo);
+       }
 
-static int CDC_Host_getchar(FILE* Stream)
-{
-       int16_t ReceivedByte = CDC_Host_ReceiveByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream));
+       static int CDC_Host_putchar(char c,
+                                   FILE* Stream)
+       {
+               return CDC_Host_SendByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream), c) ? _FDEV_ERR : 0;
+       }
 
-       if (ReceivedByte < 0)
-         return _FDEV_EOF;
+       static int CDC_Host_getchar(FILE* Stream)
+       {
+               int16_t ReceivedByte = CDC_Host_ReceiveByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream));
 
-       return ReceivedByte;
-}
+               if (ReceivedByte < 0)
+                 return _FDEV_EOF;
 
-static int CDC_Host_getchar_Blocking(FILE* Stream)
-{
-       int16_t ReceivedByte;
+               return ReceivedByte;
+       }
 
-       while ((ReceivedByte = CDC_Host_ReceiveByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream))) < 0)
+       static int CDC_Host_getchar_Blocking(FILE* Stream)
        {
-               if (USB_HostState == HOST_STATE_Unattached)
-                 return _FDEV_EOF;
+               int16_t ReceivedByte;
 
-               CDC_Host_USBTask((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream));
-               USB_USBTask();
-       }
+               while ((ReceivedByte = CDC_Host_ReceiveByte((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream))) < 0)
+               {
+                       if (USB_HostState == HOST_STATE_Unattached)
+                         return _FDEV_EOF;
 
-       return ReceivedByte;
-}
+                       CDC_Host_USBTask((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream));
+                       USB_USBTask();
+               }
+
+               return ReceivedByte;
+       }
 #endif
 
-// cppcheck-suppress unusedFunction
-void CDC_Host_Event_Stub(void)
+void CDC_Host_Event_Stub(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
 {
 
 }