+#if defined(ARCH_HAS_FLASH_ADDRESS_SPACE)\r
+ #define TEMPLATE_FUNC_NAME Pipe_Write_PStream_LE\r
+ #define TEMPLATE_BUFFER_TYPE const void*\r
+ #define TEMPLATE_TOKEN PIPE_TOKEN_OUT\r
+ #define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()\r
+ #define TEMPLATE_BUFFER_OFFSET(Length) 0\r
+ #define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount\r
+ #define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_Byte(pgm_read_byte(BufferPtr))\r
+ #include "Template/Template_Pipe_RW.c"\r
+\r
+ #define TEMPLATE_FUNC_NAME Pipe_Write_PStream_BE\r
+ #define TEMPLATE_BUFFER_TYPE const void*\r
+ #define TEMPLATE_TOKEN PIPE_TOKEN_OUT\r
+ #define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()\r
+ #define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)\r
+ #define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount\r
+ #define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_Byte(pgm_read_byte(BufferPtr))\r
+ #include "Template/Template_Pipe_RW.c"\r
+#endif\r
+\r
+#if defined(ARCH_HAS_EEPROM_ADDRESS_SPACE)\r
+ #define TEMPLATE_FUNC_NAME Pipe_Write_EStream_LE\r
+ #define TEMPLATE_BUFFER_TYPE const void*\r
+ #define TEMPLATE_TOKEN PIPE_TOKEN_OUT\r
+ #define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()\r
+ #define TEMPLATE_BUFFER_OFFSET(Length) 0\r
+ #define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount\r
+ #define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_Byte(eeprom_read_byte(BufferPtr))\r
+ #include "Template/Template_Pipe_RW.c"\r
+\r
+ #define TEMPLATE_FUNC_NAME Pipe_Write_EStream_BE\r
+ #define TEMPLATE_BUFFER_TYPE const void*\r
+ #define TEMPLATE_TOKEN PIPE_TOKEN_OUT\r
+ #define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()\r
+ #define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)\r
+ #define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount\r
+ #define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_Byte(eeprom_read_byte(BufferPtr))\r
+ #include "Template/Template_Pipe_RW.c"\r
+\r
+ #define TEMPLATE_FUNC_NAME Pipe_Read_EStream_LE\r
+ #define TEMPLATE_BUFFER_TYPE void*\r
+ #define TEMPLATE_TOKEN PIPE_TOKEN_IN\r
+ #define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()\r
+ #define TEMPLATE_BUFFER_OFFSET(Length) 0\r
+ #define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount\r
+ #define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_update_byte(BufferPtr, Pipe_Read_Byte())\r
+ #include "Template/Template_Pipe_RW.c"\r
+\r
+ #define TEMPLATE_FUNC_NAME Pipe_Read_EStream_BE\r
+ #define TEMPLATE_BUFFER_TYPE void*\r
+ #define TEMPLATE_TOKEN PIPE_TOKEN_IN\r
+ #define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()\r
+ #define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)\r
+ #define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount\r
+ #define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_update_byte(BufferPtr, Pipe_Read_Byte())\r
+ #include "Template/Template_Pipe_RW.c"\r
+#endif\r