Build: Fix incorrect build target for Ubuntu CI builds.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / CDCClassDevice.h
index b87fef1..1a9b211 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2019.
 
   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
 /** \ingroup Group_USBClassCDC
  *  \defgroup Group_USBClassCDCDevice CDC Class Device Mode Driver
  *
- *  \section Sec_Dependencies Module Source Dependencies
+ *  \section Sec_USBClassCDCDevice_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
  *    - LUFA/Drivers/USB/Class/Device/CDCClassDevice.c <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
  *
- *  \section Sec_ModDescription Module Description
+ *  \section Sec_USBClassCDCDevice_ModDescription Module Description
  *  Device Mode USB Class driver framework interface, for the CDC USB Class driver.
  *
  *  \note There are several major drawbacks to the CDC-ACM standard USB class, however
                        void EVENT_CDC_Device_BreakSent(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
                                                        const uint8_t Duration) ATTR_NON_NULL_PTR_ARG(1);
 
+                       /** Sends a given null terminated string to the attached USB host, if connected. If a host is not connected when
+                        *  the function is called, the string is discarded. Bytes will be queued for transmission to the host until either
+                        *  the endpoint bank becomes full, or the \ref CDC_Device_Flush() function is called to flush the pending data to
+                        *  the host. This allows for multiple bytes to be packed into a single endpoint packet, increasing data throughput.
+                        *
+                        *  \pre This function must only be called when the Device state machine is in the \ref DEVICE_STATE_Configured state or
+                        *       the call will fail.
+                        *
+                        *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
+                        *  \param[in]     String            Pointer to the null terminated string to send to the host.
+                        *
+                        *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
+                        */
+                       uint8_t CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
+                                                     const char* const String) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
+
                        /** Sends a given data buffer to the attached USB host, if connected. If a host is not connected when the function is
                         *  called, the string is discarded. Bytes will be queued for transmission to the host until either the endpoint bank
                         *  becomes full, or the \ref CDC_Device_Flush() function is called to flush the pending data to the host. This allows
                                                    const void* const Buffer,
                                                    const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
 
-                       /** Sends a given null terminated string to the attached USB host, if connected. If a host is not connected when
-                        *  the function is called, the string is discarded. Bytes will be queued for transmission to the host until either
-                        *  the endpoint bank becomes full, or the \ref CDC_Device_Flush() function is called to flush the pending data to
-                        *  the host. This allows for multiple bytes to be packed into a single endpoint packet, increasing data throughput.
-                        *
-                        *  \pre This function must only be called when the Device state machine is in the \ref DEVICE_STATE_Configured state or
-                        *       the call will fail.
-                        *
-                        *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
-                        *  \param[in]     String            Pointer to the null terminated string to send to the host.
-                        *
-                        *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
-                        */
-                       uint8_t CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
-                                                     const char* const String) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
+                       #if defined(ARCH_HAS_FLASH_ADDRESS_SPACE)
+                               /** Sends a given null terminated string from PROGMEM space to the attached USB host, if connected. If a host is not connected
+                                *  when the function is called, the string is discarded. Bytes will be queued for transmission to the host until either
+                                *  the endpoint bank becomes full, or the \ref CDC_Device_Flush() function is called to flush the pending data to
+                                *  the host. This allows for multiple bytes to be packed into a single endpoint packet, increasing data throughput.
+                                *
+                                *  \pre This function must only be called when the Device state machine is in the \ref DEVICE_STATE_Configured state or
+                                *       the call will fail.
+                                *
+                                *  \note This function does not exist on architectures that do not have a separate flash memory space.
+                                *
+                                *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
+                                *  \param[in]     String            Pointer to the null terminated string to send to the host.
+                                *
+                                *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
+                                */
+                               uint8_t CDC_Device_SendString_P(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
+                                                               const char* const String) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
+                       #endif
+
+                       #if defined(ARCH_HAS_FLASH_ADDRESS_SPACE)
+                               /** Sends a given data buffer from PROGMEM space to the attached USB host, if connected. If a host is not connected when the
+                                *  function is called, the string is discarded. Bytes will be queued for transmission to the host until either the endpoint
+                                *  bank becomes full, or the \ref CDC_Device_Flush() function is called to flush the pending data to the host. This allows
+                                *  for multiple bytes to be packed into a single endpoint packet, increasing data throughput.
+                                *
+                                *  \pre This function must only be called when the Device state machine is in the \ref DEVICE_STATE_Configured state or
+                                *       the call will fail.
+                                *
+                                *  \note This function does not exist on architectures that do not have a separate flash memory space.
+                                *
+                                *  \param[in,out] CDCInterfaceInfo  Pointer to a structure containing a CDC Class configuration and state.
+                                *  \param[in]     Buffer            Pointer to a buffer containing the data to send to the device.
+                                *  \param[in]     Length            Length of the data to send to the host.
+                                *
+                                *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
+                                */
+                               uint8_t CDC_Device_SendData_P(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
+                                                             const void* const Buffer,
+                                                             const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
+                       #endif
 
                        /** Sends a given byte to the attached USB host, if connected. If a host is not connected when the function is called, the
                         *  byte is discarded. Bytes will be queued for transmission to the host until either the endpoint bank becomes full, or the
                                static int CDC_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
                                #endif
 
-                               void CDC_Device_Event_Stub(void) ATTR_CONST;
+                               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);
 
                                void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
                                                                          ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub);
                                                                             ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub);
                                void EVENT_CDC_Device_BreakSent(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
                                                                const uint8_t Duration) ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1)
-                                                               ATTR_ALIAS(CDC_Device_Event_Stub);
+                                                               ATTR_ALIAS(CDC_Device_Event_Stub_2);
                        #endif
 
        #endif