Add LUFA-side channel open/close routines, add signalling handlers for the creation...
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / Pipe.c
index e6ac0e5..8784bea 100644 (file)
@@ -80,14 +80,13 @@ bool Pipe_IsEndpointBound(const uint8_t EndpointAddress)
                Pipe_SelectPipe(PNum);\r
                \r
                uint8_t PipeToken = Pipe_GetPipeToken();\r
+               bool    PipeTokenCorrect = true;\r
 \r
                if (PipeToken != PIPE_TOKEN_SETUP)\r
-                 PipeToken = (PipeToken == ((EndpointAddress & PIPE_EPDIR_MASK) ? PIPE_TOKEN_IN : PIPE_TOKEN_OUT));\r
+                 PipeTokenCorrect = (PipeToken == ((EndpointAddress & PIPE_EPDIR_MASK) ? PIPE_TOKEN_IN : PIPE_TOKEN_OUT));\r
                \r
-               if (Pipe_IsConfigured() && (Pipe_BoundEndpointNumber() == (EndpointAddress & PIPE_EPNUM_MASK)) && PipeToken)\r
-               {               \r
-                       return true;\r
-               }\r
+               if (Pipe_IsConfigured() && PipeTokenCorrect && (Pipe_BoundEndpointNumber() == (EndpointAddress & PIPE_EPNUM_MASK)))\r
+                 return true;\r
        }\r
        \r
        Pipe_SelectPipe(PrevPipeNumber);\r
@@ -226,15 +225,13 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr++))\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#if defined(__AVR__)\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_TRANSFER_BYTE(BufferPtr)     Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
-       #include "Template/Template_Pipe_RW.c"\r
-#endif\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_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
+#include "Template/Template_Pipe_RW.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Pipe_Write_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      const void*\r
@@ -252,15 +249,13 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr--))\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#if defined(__AVR__)\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_TRANSFER_BYTE(BufferPtr)     Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
-       #include "Template/Template_Pipe_RW.c"\r
-#endif\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_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
+#include "Template/Template_Pipe_RW.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Pipe_Read_Stream_LE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
@@ -270,15 +265,13 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr++) = Pipe_Read_Byte()\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#if defined(__AVR__)\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_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr++, Pipe_Read_Byte())\r
-       #include "Template/Template_Pipe_RW.c"\r
-#endif\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_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr++, Pipe_Read_Byte())\r
+#include "Template/Template_Pipe_RW.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Pipe_Read_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
@@ -288,14 +281,12 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr--) = Pipe_Read_Byte()\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#if defined(__AVR__)\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_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr--, Pipe_Read_Byte())\r
-       #include "Template/Template_Pipe_RW.c"\r
-#endif\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_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr--, Pipe_Read_Byte())\r
+#include "Template/Template_Pipe_RW.c"\r
 \r
 #endif\r