Add makefile template for the AVR32 UC3 architecture.
[pub/USBasp.git] / LUFA / Drivers / USB / Core / EndpointStream.h
index 4d4f33a..b4454a3 100644 (file)
 */\r
 \r
 /** \file\r
- *  \brief USB device endpoint stream function definitions.\r
- *\r
- *  This file contains structures, function prototypes and macros related to the sending and receiving of\r
- *  arbitrary data streams through the device's data endpoints when the library is initialized in USB device mode.\r
+ *  \brief Endpoint data stream transmission and reception management.\r
+ *  \copydetails Group_EndpointStreamRW\r
  *\r
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver\r
  *        dispatch header located in LUFA/Drivers/USB/USB.h.\r
@@ -40,6 +38,7 @@
 \r
 /** \ingroup Group_EndpointRW  \r
  *  \defgroup Group_EndpointStreamRW Read/Write of Multi-Byte Streams\r
+ *  \brief Endpoint data stream transmission and reception management.\r
  *\r
  *  Functions, macros, variables, enums and types related to data reading and writing of data streams from\r
  *  and to endpoints.\r
@@ -52,6 +51,7 @@
 \r
        /* Includes: */\r
                #include "../../../Common/Common.h"\r
+               #include "USBMode.h"            \r
                #include "USBTask.h"\r
                \r
        /* Enable C linkage for C++ Compilers: */\r
                        /** \name Stream functions for EEPROM source/destination data */\r
                        //@{\r
 \r
+                       #if defined(ARCH_HAS_EEPROM_ADDRESS_SPACE) || defined(__DOXYGEN__)\r
                        /** EEPROM buffer source version of \ref Endpoint_Write_Stream_LE().\r
                         *\r
+                        *  \note This function is not available on all architectures.\r
+                        *\r
                         *  \param[in] Buffer          Pointer to the source data buffer to read from.\r
                         *  \param[in] Length          Number of bytes to read for the currently selected endpoint into the buffer.\r
                         *  \param[in] BytesProcessed  Pointer to a location where the total number of bytes processed in the current\r
 \r
                        /** EEPROM buffer source version of \ref Endpoint_Write_Stream_BE().\r
                         *\r
+                        *  \note This function is not available on all architectures.\r
+                        *\r
                         *  \param[in] Buffer          Pointer to the source data buffer to read from.\r
                         *  \param[in] Length          Number of bytes to read for the currently selected endpoint into the buffer.\r
                         *  \param[in] BytesProcessed  Pointer to a location where the total number of bytes processed in the current\r
 \r
                        /** EEPROM buffer source version of \ref Endpoint_Read_Stream_LE().\r
                         *\r
+                        *  \note This function is not available on all architectures.\r
+                        *\r
                         *  \param[out] Buffer          Pointer to the destination data buffer to write to, located in EEPROM memory space.\r
                         *  \param[in]  Length          Number of bytes to send via the currently selected endpoint.\r
                         *  \param[in]  BytesProcessed  Pointer to a location where the total number of bytes processed in the current\r
 \r
                        /** EEPROM buffer source version of \ref Endpoint_Read_Stream_BE().\r
                         *\r
+                        *  \note This function is not available on all architectures.\r
+                        *\r
                         *  \param[out] Buffer          Pointer to the destination data buffer to write to, located in EEPROM memory space.\r
                         *  \param[in]  Length          Number of bytes to send via the currently selected endpoint.\r
                         *  \param[in]  BytesProcessed  Pointer to a location where the total number of bytes processed in the current\r
                         *        \n\n\r
                         *\r
                         *  \note This routine should only be used on CONTROL type endpoints.\r
+                        *        \n\n\r
+                        *\r
+                        *  \note This function is not available on all architectures.\r
                         *\r
                         *  \warning Unlike the standard stream read/write commands, the control stream commands cannot be chained\r
                         *           together; i.e. the entire stream data must be read or written at the one time.\r
                         *        \n\n\r
                         *\r
                         *  \note This routine should only be used on CONTROL type endpoints.\r
+                        *        \n\n\r
+                        *\r
+                        *  \note This function is not available on all architectures.\r
                         *\r
                         *  \warning Unlike the standard stream read/write commands, the control stream commands cannot be chained\r
                         *           together; i.e. the entire stream data must be read or written at the one time.\r
                         *        \n\n\r
                         *\r
                         *  \note This routine should only be used on CONTROL type endpoints.\r
+                        *        \n\n\r
+                        *\r
+                        *  \note This function is not available on all architectures.\r
                         *\r
                         *  \warning Unlike the standard stream read/write commands, the control stream commands cannot be chained\r
                         *           together; i.e. the entire stream data must be read or written at the one time.\r
                         *        \n\n\r
                         *\r
                         *  \note This routine should only be used on CONTROL type endpoints.\r
+                        *        \n\n\r
+                        *\r
+                        *  \note This function is not available on all architectures.\r
                         *\r
                         *  \warning Unlike the standard stream read/write commands, the control stream commands cannot be chained\r
                         *           together; i.e. the entire stream data must be read or written at the one time.\r
                         */\r
                        uint8_t Endpoint_Read_Control_EStream_BE(void* const Buffer,\r
                                                                 uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);\r
+                       #endif\r
                        //@}\r
 \r
                        /** \name Stream functions for PROGMEM source/destination data */\r
                        //@{\r
 \r
+                       #if defined(ARCH_HAS_FLASH_ADDRESS_SPACE) || defined(__DOXYGEN__)\r
                        /** FLASH buffer source version of \ref Endpoint_Write_Stream_LE().\r
                         *\r
                         *  \pre The FLASH data must be located in the first 64KB of FLASH for this function to work correctly.\r
                         *\r
+                        *  \note This function is not available on all architectures.\r
+                        *\r
                         *  \param[in] Buffer          Pointer to the source data buffer to read from.\r
                         *  \param[in] Length          Number of bytes to read for the currently selected endpoint into the buffer.\r
                         *  \param[in] BytesProcessed  Pointer to a location where the total number of bytes processed in the current\r
                         *\r
                         *  \pre The FLASH data must be located in the first 64KB of FLASH for this function to work correctly.\r
                         *\r
+                        *  \note This function is not available on all architectures.\r
+                        *\r
                         *  \param[in] Buffer          Pointer to the source data buffer to read from.\r
                         *  \param[in] Length          Number of bytes to read for the currently selected endpoint into the buffer.\r
                         *  \param[in] BytesProcessed  Pointer to a location where the total number of bytes processed in the current\r
                         *        \n\n\r
                         *\r
                         *  \note This routine should only be used on CONTROL type endpoints.\r
+                        *        \n\n\r
+                        *\r
+                        *  \note This function is not available on all architectures.\r
                         *\r
                         *  \warning Unlike the standard stream read/write commands, the control stream commands cannot be chained\r
                         *           together; i.e. the entire stream data must be read or written at the one time.\r
                         *        \n\n\r
                         *\r
                         *  \note This routine should only be used on CONTROL type endpoints.\r
+                        *        \n\n\r
+                        *\r
+                        *  \note This function is not available on all architectures.\r
                         *\r
                         *  \warning Unlike the standard stream read/write commands, the control stream commands cannot be chained\r
                         *           together; i.e. the entire stream data must be read or written at the one time.\r
                         */\r
                        uint8_t Endpoint_Write_Control_PStream_BE(const void* const Buffer,\r
                                                                  uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);\r
+                       #endif\r
                        //@}\r
 \r
        /* Disable C linkage for C++ Compilers: */\r