Build: Fix incorrect build target for Ubuntu CI builds.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / CDCClassDevice.c
index 2ee84d9..0d4e5c3 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2019.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2019  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
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -74,7 +74,7 @@ void CDC_Device_ProcessControlRequest(USB_ClassInfo_CDC_Device_t* const CDCInter
                                        if (USB_DeviceState == DEVICE_STATE_Unattached)
                                          return;
                                }
                                        if (USB_DeviceState == DEVICE_STATE_Unattached)
                                          return;
                                }
-                               
+
                                CDCInterfaceInfo->State.LineEncoding.BaudRateBPS = Endpoint_Read_32_LE();
                                CDCInterfaceInfo->State.LineEncoding.CharFormat  = Endpoint_Read_8();
                                CDCInterfaceInfo->State.LineEncoding.ParityType  = Endpoint_Read_8();
                                CDCInterfaceInfo->State.LineEncoding.BaudRateBPS = Endpoint_Read_32_LE();
                                CDCInterfaceInfo->State.LineEncoding.CharFormat  = Endpoint_Read_8();
                                CDCInterfaceInfo->State.LineEncoding.ParityType  = Endpoint_Read_8();
@@ -139,7 +139,7 @@ void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 
        #if !defined(NO_CLASS_DRIVER_AUTOFLUSH)
        Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
 
        #if !defined(NO_CLASS_DRIVER_AUTOFLUSH)
        Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
-       
+
        if (Endpoint_IsINReady())
          CDC_Device_Flush(CDCInterfaceInfo);
        #endif
        if (Endpoint_IsINReady())
          CDC_Device_Flush(CDCInterfaceInfo);
        #endif
@@ -156,7 +156,7 @@ uint8_t CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo
 }
 
 uint8_t CDC_Device_SendData(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
 }
 
 uint8_t CDC_Device_SendData(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
-                            const char* const Buffer,
+                            const void* const Buffer,
                             const uint16_t Length)
 {
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
                             const uint16_t Length)
 {
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
@@ -166,6 +166,29 @@ uint8_t CDC_Device_SendData(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
        return Endpoint_Write_Stream_LE(Buffer, Length, NULL);
 }
 
        return Endpoint_Write_Stream_LE(Buffer, Length, NULL);
 }
 
+#if defined(ARCH_HAS_FLASH_ADDRESS_SPACE)
+       uint8_t CDC_Device_SendString_P(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
+                                       const char* const String)
+       {
+               if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
+                 return ENDPOINT_RWSTREAM_DeviceDisconnected;
+
+               Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
+               return Endpoint_Write_PStream_LE(String, strlen_P(String), NULL);
+       }
+
+       uint8_t CDC_Device_SendData_P(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
+                                     const void* const Buffer,
+                                     const uint16_t Length)
+       {
+               if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
+                 return ENDPOINT_RWSTREAM_DeviceDisconnected;
+
+               Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
+               return Endpoint_Write_PStream_LE(Buffer, Length, NULL);
+       }
+#endif
+
 uint8_t CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
                             const uint8_t Data)
 {
 uint8_t CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
                             const uint8_t Data)
 {
@@ -285,58 +308,62 @@ void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDC
 }
 
 #if defined(FDEV_SETUP_STREAM)
 }
 
 #if defined(FDEV_SETUP_STREAM)
-void CDC_Device_CreateStream(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
-                             FILE* const Stream)
-{
-       *Stream = (FILE)FDEV_SETUP_STREAM(CDC_Device_putchar, CDC_Device_getchar, _FDEV_SETUP_RW);
-       fdev_set_udata(Stream, CDCInterfaceInfo);
-}
-
-void CDC_Device_CreateBlockingStream(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
-                                     FILE* const Stream)
-{
-       *Stream = (FILE)FDEV_SETUP_STREAM(CDC_Device_putchar, CDC_Device_getchar_Blocking, _FDEV_SETUP_RW);
-       fdev_set_udata(Stream, CDCInterfaceInfo);
-}
+       void CDC_Device_CreateStream(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
+                                    FILE* const Stream)
+       {
+               *Stream = (FILE)FDEV_SETUP_STREAM(CDC_Device_putchar, CDC_Device_getchar, _FDEV_SETUP_RW);
+               fdev_set_udata(Stream, CDCInterfaceInfo);
+       }
 
 
-static int CDC_Device_putchar(char c,
-                              FILE* Stream)
-{
-       return CDC_Device_SendByte((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream), c) ? _FDEV_ERR : 0;
-}
+       void CDC_Device_CreateBlockingStream(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
+                                            FILE* const Stream)
+       {
+               *Stream = (FILE)FDEV_SETUP_STREAM(CDC_Device_putchar, CDC_Device_getchar_Blocking, _FDEV_SETUP_RW);
+               fdev_set_udata(Stream, CDCInterfaceInfo);
+       }
 
 
-static int CDC_Device_getchar(FILE* Stream)
-{
-       int16_t ReceivedByte = CDC_Device_ReceiveByte((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream));
+       static int CDC_Device_putchar(char c,
+                                     FILE* Stream)
+       {
+               return CDC_Device_SendByte((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream), c) ? _FDEV_ERR : c;
+       }
 
 
-       if (ReceivedByte < 0)
-         return _FDEV_EOF;
+       static int CDC_Device_getchar(FILE* Stream)
+       {
+               int16_t ReceivedByte = CDC_Device_ReceiveByte((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream));
 
 
-       return ReceivedByte;
-}
+               if (ReceivedByte < 0)
+                 return _FDEV_EOF;
 
 
-static int CDC_Device_getchar_Blocking(FILE* Stream)
-{
-       int16_t ReceivedByte;
+               return ReceivedByte;
+       }
 
 
-       while ((ReceivedByte = CDC_Device_ReceiveByte((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream))) < 0)
+       static int CDC_Device_getchar_Blocking(FILE* Stream)
        {
        {
-               if (USB_DeviceState == DEVICE_STATE_Unattached)
-                 return _FDEV_EOF;
+               int16_t ReceivedByte;
 
 
-               CDC_Device_USBTask((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream));
-               USB_USBTask();
-       }
+               while ((ReceivedByte = CDC_Device_ReceiveByte((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream))) < 0)
+               {
+                       if (USB_DeviceState == DEVICE_STATE_Unattached)
+                         return _FDEV_EOF;
 
 
-       return ReceivedByte;
-}
+                       CDC_Device_USBTask((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream));
+                       USB_USBTask();
+               }
+
+               return ReceivedByte;
+       }
 #endif
 
 #endif
 
-// cppcheck-suppress unusedFunction
-void CDC_Device_Event_Stub(void)
+void CDC_Device_Event_Stub(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
 
 }
 
 {
 
 }
 
+void CDC_Device_Event_Stub_2(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, const uint8_t _1)
+{
+       CDC_Device_Event_Stub(CDCInterfaceInfo);
+}
+
 #endif
 
 #endif