Add in new architecture attribute defines to selectively remove the EEPROM and FLASH...
[pub/USBasp.git] / LUFA / Drivers / USB / Core / EndpointStream.c
index 974af68..893a6ff 100644 (file)
@@ -122,22 +122,6 @@ uint8_t Endpoint_Null_Stream(uint16_t Length,
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(*BufferPtr)\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_PStream_LE\r
-#define  TEMPLATE_BUFFER_TYPE                      const void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte(BufferPtr))\r
-#include "Template/Template_Endpoint_RW.c"\r
-\r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_EStream_LE\r
-#define  TEMPLATE_BUFFER_TYPE                      const void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte(BufferPtr))\r
-#include "Template/Template_Endpoint_RW.c"\r
-\r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      const void*\r
 #define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
@@ -146,22 +130,6 @@ uint8_t Endpoint_Null_Stream(uint16_t Length,
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(*BufferPtr)\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_EStream_BE\r
-#define  TEMPLATE_BUFFER_TYPE                      const void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte(BufferPtr))\r
-#include "Template/Template_Endpoint_RW.c"\r
-\r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_PStream_BE\r
-#define  TEMPLATE_BUFFER_TYPE                      const void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte(BufferPtr))\r
-#include "Template/Template_Endpoint_RW.c"\r
-\r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Stream_LE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
 #define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
@@ -170,14 +138,6 @@ uint8_t Endpoint_Null_Stream(uint16_t Length,
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *BufferPtr = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_EStream_LE\r
-#define  TEMPLATE_BUFFER_TYPE                      void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_update_byte(BufferPtr, Endpoint_Read_Byte())\r
-#include "Template/Template_Endpoint_RW.c"\r
-\r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
 #define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
@@ -186,13 +146,57 @@ uint8_t Endpoint_Null_Stream(uint16_t Length,
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *BufferPtr = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_EStream_BE\r
-#define  TEMPLATE_BUFFER_TYPE                      void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_update_byte(BufferPtr, Endpoint_Read_Byte())\r
-#include "Template/Template_Endpoint_RW.c"\r
+#if defined(ARCH_HAS_FLASH_ADDRESS_SPACE)\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_PStream_LE\r
+       #define  TEMPLATE_BUFFER_TYPE                      const void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte(BufferPtr))\r
+       #include "Template/Template_Endpoint_RW.c"\r
+\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_PStream_BE\r
+       #define  TEMPLATE_BUFFER_TYPE                      const void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte(BufferPtr))\r
+       #include "Template/Template_Endpoint_RW.c"\r
+#endif\r
+\r
+#if defined(ARCH_HAS_EEPROM_ADDRESS_SPACE)\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_EStream_LE\r
+       #define  TEMPLATE_BUFFER_TYPE                      const void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte(BufferPtr))\r
+       #include "Template/Template_Endpoint_RW.c"\r
+\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_EStream_BE\r
+       #define  TEMPLATE_BUFFER_TYPE                      const void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte(BufferPtr))\r
+       #include "Template/Template_Endpoint_RW.c"\r
+\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_EStream_LE\r
+       #define  TEMPLATE_BUFFER_TYPE                      void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_update_byte(BufferPtr, Endpoint_Read_Byte())\r
+       #include "Template/Template_Endpoint_RW.c"\r
+\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_EStream_BE\r
+       #define  TEMPLATE_BUFFER_TYPE                      void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_update_byte(BufferPtr, Endpoint_Read_Byte())\r
+       #include "Template/Template_Endpoint_RW.c"\r
+#endif\r
 \r
 #endif\r
 \r
@@ -202,58 +206,62 @@ uint8_t Endpoint_Null_Stream(uint16_t Length,
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(*BufferPtr)\r
 #include "Template/Template_Endpoint_Control_W.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_PStream_LE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte(BufferPtr))\r
-#include "Template/Template_Endpoint_Control_W.c"\r
-\r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_EStream_LE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte(BufferPtr))\r
-#include "Template/Template_Endpoint_Control_W.c"\r
-\r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_Stream_BE\r
 #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
 #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(*BufferPtr)\r
 #include "Template/Template_Endpoint_Control_W.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_PStream_BE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte(BufferPtr))\r
-#include "Template/Template_Endpoint_Control_W.c"\r
-\r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_EStream_BE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte(BufferPtr))\r
-#include "Template/Template_Endpoint_Control_W.c"\r
-\r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_Stream_LE\r
 #define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
 #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *BufferPtr = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_Control_R.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_EStream_LE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_update_byte(BufferPtr, Endpoint_Read_Byte())\r
-#include "Template/Template_Endpoint_Control_R.c"\r
-\r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_Stream_BE\r
 #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
 #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *BufferPtr = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_Control_R.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_EStream_BE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_update_byte(BufferPtr, Endpoint_Read_Byte())\r
-#include "Template/Template_Endpoint_Control_R.c"\r
+#if defined(ARCH_HAS_FLASH_ADDRESS_SPACE)\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_PStream_LE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte(BufferPtr))\r
+       #include "Template/Template_Endpoint_Control_W.c"\r
+\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_PStream_BE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte(BufferPtr))\r
+       #include "Template/Template_Endpoint_Control_W.c"\r
+#endif\r
+\r
+#if defined(ARCH_HAS_EEPROM_ADDRESS_SPACE)\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_EStream_LE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte(BufferPtr))\r
+       #include "Template/Template_Endpoint_Control_W.c"\r
+\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_EStream_BE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte(BufferPtr))\r
+       #include "Template/Template_Endpoint_Control_W.c"\r
+\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_EStream_LE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr += Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_update_byte(BufferPtr, Endpoint_Read_Byte())\r
+       #include "Template/Template_Endpoint_Control_R.c"\r
+\r
+       #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_EStream_BE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+       #define  TEMPLATE_BUFFER_MOVE(BufferPtr, Amount)   BufferPtr -= Amount\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_update_byte(BufferPtr, Endpoint_Read_Byte())\r
+       #include "Template/Template_Endpoint_Control_R.c"\r
+#endif\r
 \r
 #endif