+#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