Fixed CDC class Send_Device_*_P() and Send_Host_*_P() variant functions not compiled...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / CDCClassDevice.h
index 4b307fc..6fea691 100644 (file)
                        void EVENT_CDC_Device_BreakSent(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
                                                        const uint8_t Duration) ATTR_NON_NULL_PTR_ARG(1);
 
                        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 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
-                        *  for multiple bytes to be packed into a single endpoint packet, increasing data throughput.
+                       /** 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.
                         *
                         *  \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]     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.
+                        *  \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.
                         */
                         *
                         *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
                         */
-                       uint8_t CDC_Device_SendData(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);
+                       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 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
+                       /** 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
                         *  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
                         *  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
                         *
                         *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
                         */
                         *
                         *  \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,
+                       uint8_t CDC_Device_SendData(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);
 
                                                    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
+                       /** 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.
                         *
                         *  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.
                         */
                         *  \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)
+                               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
 
 
-                       /** 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.
+                       /** 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.
                         *
                         *
                         *  \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,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.
+                        *  \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.
                         */
                         *
                         *  \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);
+                       #if defined(ARCH_HAS_FLASH_ADDRESS_SPACE)
+                               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
 
                        /** 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