Build: Fix incorrect build target for Ubuntu CI builds.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / CDCClassDevice.c
index 082c1e3..0d4e5c3 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2012.
+     Copyright (C) Dean Camera, 2019.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2012  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
@@ -74,7 +74,7 @@ void CDC_Device_ProcessControlRequest(USB_ClassInfo_CDC_Device_t* const CDCInter
                                        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();
@@ -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 (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,
-                            const char* const Buffer,
+                            const void* const Buffer,
                             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);
 }
 
+#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)
 {
@@ -285,58 +308,62 @@ void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDC
 }
 
 #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
 
-// 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