Oops - ensure that only the relevant/available interrupts are defined and used on...
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 27 Feb 2011 20:38:47 +0000 (20:38 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 27 Feb 2011 20:38:47 +0000 (20:38 +0000)
Make all USB driver headers include USBMode.h first, to ensure that the relevant USB mode macros are defined.

17 files changed:
LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h
LUFA/Drivers/USB/Core/ConfigDescriptor.h
LUFA/Drivers/USB/Core/Device.h
LUFA/Drivers/USB/Core/DeviceStandardReq.h
LUFA/Drivers/USB/Core/Endpoint.h
LUFA/Drivers/USB/Core/EndpointStream.h
LUFA/Drivers/USB/Core/Host.h
LUFA/Drivers/USB/Core/OTG.h
LUFA/Drivers/USB/Core/Pipe.h
LUFA/Drivers/USB/Core/PipeStream.h
LUFA/Drivers/USB/Core/StdRequestType.h
LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c
LUFA/Drivers/USB/Core/UC3B/USBInterrupt_UC3B.c
LUFA/Drivers/USB/Core/UC3B/USBInterrupt_UC3B.h
LUFA/Drivers/USB/Core/USBController.h
LUFA/Drivers/USB/Core/USBInterrupt.h
LUFA/Drivers/USB/Core/USBTask.h

index ebefd19..6115ec6 100644 (file)
                /* Enums: */
                        enum USB_Interrupts_t
                        {
+                               #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__))
                                USB_INT_VBUSTI  = 0,
+                               #endif
+                               #if (defined(USB_CAN_BE_BOTH) || defined(__DOXYGEN__))
                                USB_INT_IDTI    = 1,
+                               #endif
+                               #if (defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__))
                                USB_INT_WAKEUPI = 2,
                                USB_INT_SUSPI   = 3,
                                USB_INT_EORSTI  = 4,
                                USB_INT_SOFI    = 5,
-                               USB_INT_HSOFI   = 6,
-                               USB_INT_DCONNI  = 7,
-                               USB_INT_DDISCI  = 8,
-                               USB_INT_RSTI    = 9,
-                               USB_INT_BCERRI  = 10,
-                               USB_INT_VBERRI  = 11,
-                               USB_INT_SRPI    = 12,
-                               USB_INT_RXSTPI  = 13,
+                               USB_INT_RXSTPI  = 6,
+                               #endif
+                               #if (defined(USB_CAN_BE_HOST) || defined(__DOXYGEN__))
+                               USB_INT_HSOFI   = 7,
+                               USB_INT_DCONNI  = 8,
+                               USB_INT_DDISCI  = 9,
+                               USB_INT_RSTI    = 10,
+                               USB_INT_BCERRI  = 11,
+                               USB_INT_VBERRI  = 12,
+                               USB_INT_SRPI    = 13,
+                               #endif
                        };
 
                /* Inline Functions: */
                        {
                                switch (Interrupt)
                                {
+                                       #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        case USB_INT_VBUSTI:
                                                USBCON |= (1 << VBUSTE);
                                                break;
+                                       #endif
+                                       #if defined(USB_CAN_BE_BOTH)
                                        case USB_INT_IDTI:
                                                USBCON |= (1 << IDTE);
                                                break;
+                                       #endif
+                                       #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDIEN  |= (1 << WAKEUPE);
                                                break;
                                        case USB_INT_SOFI:
                                                UDIEN  |= (1 << SOFE);
                                                break;
+                                       case USB_INT_RXSTPI:
+                                               UEIENX |= (1 << RXSTPE);
+                                               break;
+                                       #endif
+                                       #if defined(USB_CAN_BE_HOST)
                                        case USB_INT_HSOFI:
                                                UHIEN  |= (1 << HSOFE);
                                                break;
                                        case USB_INT_SRPI:
                                                OTGIEN |= (1 << SRPE);                                          
                                                break;
-                                       case USB_INT_RXSTPI:
-                                               UEIENX |= (1 << RXSTPE);
-                                               break;
+                                       #endif
                                }
                        }
 
                        {
                                switch (Interrupt)
                                {
+                                       #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        case USB_INT_VBUSTI:
                                                USBCON &= ~(1 << VBUSTE);
                                                break;
+                                       #endif
+                                       #if defined(USB_CAN_BE_BOTH)
                                        case USB_INT_IDTI:
                                                USBCON &= ~(1 << IDTE);
                                                break;
+                                       #endif
+                                       #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDIEN  &= ~(1 << WAKEUPE);
                                                break;
                                        case USB_INT_SOFI:
                                                UDIEN  &= ~(1 << SOFE);
                                                break;
+                                       case USB_INT_RXSTPI:
+                                               UEIENX &= ~(1 << RXSTPE);
+                                               break;
+                                       #endif
+                                       #if defined(USB_CAN_BE_HOST)
                                        case USB_INT_HSOFI:
                                                UHIEN  &= ~(1 << HSOFE);
                                                break;
                                        case USB_INT_SRPI:
                                                OTGIEN &= ~(1 << SRPE);                                         
                                                break;
-                                       case USB_INT_RXSTPI:
-                                               UEIENX &= ~(1 << RXSTPE);
-                                               break;
+                                       #endif
                                }
                        }
                        
                        {
                                switch (Interrupt)
                                {
+                                       #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        case USB_INT_VBUSTI:
                                                USBINT &= ~(1 << VBUSTI);
                                                break;
+                                       #endif
+                                       #if defined(USB_CAN_BE_BOTH)
                                        case USB_INT_IDTI:
                                                USBINT &= ~(1 << IDTI);
                                                break;
+                                       #endif
+                                       #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDINT  &= ~(1 << WAKEUPI);
                                                break;
                                        case USB_INT_SOFI:
                                                UDINT  &= ~(1 << SOFI);
                                                break;
+                                       case USB_INT_RXSTPI:
+                                               UEINTX &= ~(1 << RXSTPI);
+                                               break;
+                                       #endif
+                                       #if defined(USB_CAN_BE_HOST)
                                        case USB_INT_HSOFI:
                                                UHINT  &= ~(1 << HSOFI);
                                                break;
                                        case USB_INT_SRPI:
                                                OTGINT &= ~(1 << SRPI);
                                                break;
-                                       case USB_INT_RXSTPI:
-                                               UEINTX &= ~(1 << RXSTPI);
-                                               break;
+                                       #endif
                                }
                        }
                        
                        {
                                switch (Interrupt)
                                {
+                                       #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        case USB_INT_VBUSTI:
                                                return (USBCON & (1 << VBUSTE));
+                                       #endif
+                                       #if defined(USB_CAN_BE_BOTH)
                                        case USB_INT_IDTI:
                                                return (USBCON & (1 << IDTE));
+                                       #endif
+                                       #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                return (UDIEN  & (1 << WAKEUPE));
                                        case USB_INT_SUSPI:
                                                return (UDIEN  & (1 << EORSTE));
                                        case USB_INT_SOFI:
                                                return (UDIEN  & (1 << SOFE));
+                                       case USB_INT_RXSTPI:
+                                               return (UEIENX & (1 << RXSTPE));
+                                       #endif
+                                       #if defined(USB_CAN_BE_HOST)
                                        case USB_INT_HSOFI:
                                                return (UHIEN  & (1 << HSOFE));
                                        case USB_INT_DCONNI:
                                                return (OTGIEN & (1 << VBERRE));
                                        case USB_INT_SRPI:
                                                return (OTGIEN & (1 << SRPE));
-                                       case USB_INT_RXSTPI:
-                                               return (UEIENX & (1 << RXSTPE));
-                                               break;
+                                       #endif
                                }
                                
                                return false;
                        {
                                switch (Interrupt)
                                {
+                                       #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        case USB_INT_VBUSTI:
                                                return (USBINT & (1 << VBUSTI));
+                                       #endif
+                                       #if defined(USB_CAN_BE_BOTH)
                                        case USB_INT_IDTI:
                                                return (USBINT & (1 << IDTI));
+                                       #endif
+                                       #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                return (UDINT  & (1 << WAKEUPI));
                                        case USB_INT_SUSPI:
                                                return (UDINT  & (1 << EORSTI));
                                        case USB_INT_SOFI:
                                                return (UDINT  & (1 << SOFI));
+                                       case USB_INT_RXSTPI:
+                                               return (UEINTX & (1 << RXSTPI));
+                                       #endif
+                                       #if defined(USB_CAN_BE_HOST)
                                        case USB_INT_HSOFI:
                                                return (UHINT  & (1 << HSOFI));
                                        case USB_INT_DCONNI:
                                                return (OTGINT & (1 << VBERRI));
                                        case USB_INT_SRPI:
                                                return (OTGINT & (1 << SRPI));
-                                       case USB_INT_RXSTPI:
-                                               return (UEINTX & (1 << RXSTPI));
+                                       #endif
                                }
 
                                return false;
index e469987..54bf14d 100644 (file)
@@ -52,8 +52,8 @@
 
        /* Includes: */
                #include "../../../Common/Common.h"
+               #include "USBMode.h"            
                #include "HostStandardReq.h"
-               #include "USBMode.h"
                #include "StdDescriptors.h"
 
        /* Enable C linkage for C++ Compilers: */
index fdec1df..45c0393 100644 (file)
@@ -51,6 +51,7 @@
 \r
        /* Includes: */\r
                #include "../../../Common/Common.h"\r
+               #include "USBMode.h"            \r
                #include "StdDescriptors.h"\r
                #include "USBInterrupt.h"\r
                #include "Endpoint.h"\r
index 0ab297d..dbf1ca4 100644 (file)
@@ -43,6 +43,7 @@
 
        /* Includes: */
                #include "../../../Common/Common.h"
+               #include "USBMode.h"            
                #include "StdDescriptors.h"
                #include "Events.h"
                #include "StdRequestType.h"
index 557df2c..d7a8bb7 100644 (file)
@@ -74,6 +74,7 @@
 \r
        /* Includes: */\r
                #include "../../../Common/Common.h"\r
+               #include "USBMode.h"            \r
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
index a8fd4bc..02a3483 100644 (file)
@@ -51,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
index 4a12f1a..b864a96 100644 (file)
@@ -51,6 +51,7 @@
 \r
        /* Includes: */\r
                #include "../../../Common/Common.h"\r
+               #include "USBMode.h"            \r
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
index fee7c53..918b2ca 100644 (file)
@@ -52,6 +52,7 @@
 \r
        /* Includes: */\r
                #include "../../../Common/Common.h"\r
+               #include "USBMode.h"            \r
                \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
index ac49ee8..fb1c9d6 100644 (file)
@@ -84,6 +84,7 @@
 \r
        /* Includes: */\r
                #include "../../../Common/Common.h"\r
+               #include "USBMode.h"            \r
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
index 5c3ab9d..c579631 100644 (file)
@@ -51,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
index 83bec4f..e3e30f9 100644 (file)
@@ -51,6 +51,7 @@
 
        /* Includes: */
                #include "../../../Common/Common.h"
+               #include "USBMode.h"            
 
        /* Preprocessor Checks: */
                #if !defined(__INCLUDE_FROM_USB_DRIVER)
index 9ae5a27..88dbcda 100644 (file)
@@ -184,7 +184,7 @@ static void USB_Init_Host(void)
 \r
        USB_Host_VBUS_Auto_On();\r
 \r
-       USB_INT_Enable(USB_INT_SRPI);\r
+       USB_INT_Enable(USB_INT_DCONNI);\r
        USB_INT_Enable(USB_INT_BCERRI);\r
 \r
        USB_Attach();\r
index 0603d5c..77dbc9f 100644 (file)
@@ -160,10 +160,10 @@ ISR(USB_GEN_vect)
                USB_HostState = HOST_STATE_Unattached;\r
        }\r
 \r
-       if (USB_INT_HasOccurred(USB_INT_SRPI) && USB_INT_IsEnabled(USB_INT_SRPI))\r
+       if (USB_INT_HasOccurred(USB_INT_DCONNI) && USB_INT_IsEnabled(USB_INT_DCONNI))\r
        {\r
-               USB_INT_Clear(USB_INT_SRPI);\r
-               USB_INT_Disable(USB_INT_SRPI);\r
+               USB_INT_Clear(USB_INT_DCONNI);\r
+               USB_INT_Disable(USB_INT_DCONNI);\r
 \r
                EVENT_USB_Host_DeviceAttached();\r
 \r
index e2f96e6..4100a01 100644 (file)
                        enum USB_Interrupts_t\r
                        {\r
                                USB_INT_VBUSTI  = 0,\r
+                               #if (defined(USB_CAN_BE_BOTH) || defined(__DOXYGEN__))\r
                                USB_INT_IDTI    = 1,\r
+                               #endif\r
+                               #if (defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__))\r
                                USB_INT_WAKEUPI = 2,\r
                                USB_INT_SUSPI   = 3,\r
                                USB_INT_EORSTI  = 4,\r
                                USB_INT_SOFI    = 5,\r
-                               USB_INT_HSOFI   = 6,\r
-                               USB_INT_DCONNI  = 7,\r
-                               USB_INT_DDISCI  = 8,\r
-                               USB_INT_RSTI    = 9,\r
-                               USB_INT_BCERRI  = 10,\r
-                               USB_INT_VBERRI  = 11,\r
-                               USB_INT_SRPI    = 12,\r
-                               USB_INT_RXSTPI  = 13,\r
+                               USB_INT_RXSTPI  = 6,\r
+                               #endif\r
+                               #if (defined(USB_CAN_BE_HOST) || defined(__DOXYGEN__))                  \r
+                               USB_INT_HSOFI   = 7,\r
+                               USB_INT_DCONNI  = 8,\r
+                               USB_INT_DDISCI  = 9,\r
+                               USB_INT_RSTI    = 10,\r
+                               USB_INT_BCERRI  = 11,\r
+                               USB_INT_VBERRI  = 12,\r
+                               #endif\r
                        };\r
                        \r
                /* Inline Functions: */\r
                                        case USB_INT_VBUSTI:\r
                                                AVR32_USBB.USBCON.vbuste      = true;\r
                                                break;\r
+                                       #if defined(USB_CAN_BE_BOTH)\r
                                        case USB_INT_IDTI:\r
                                                AVR32_USBB.USBCON.idte        = true;\r
                                                break;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_DEVICE)\r
                                        case USB_INT_WAKEUPI:\r
                                                AVR32_USBB.UDINTESET.wakeupes = true;\r
                                                break;\r
                                        case USB_INT_SOFI:\r
                                                AVR32_USBB.UDINTESET.sofes    = true;\r
                                                break;\r
+                                       case USB_INT_RXSTPI:\r
+                                               // TODO\r
+                                               return;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_HOST)\r
                                        case USB_INT_HSOFI:\r
                                                AVR32_USBB.UHINTESET.hsofies  = true;\r
                                                break;\r
                                        case USB_INT_VBERRI:\r
                                                AVR32_USBB.USBCON.vberre      = true;\r
                                                break;\r
-                                       case USB_INT_SRPI:\r
-                                       case USB_INT_RXSTPI:\r
-                                               // TODO\r
-                                               return;\r
+                                       #endif\r
                                }\r
                        }\r
 \r
                                        case USB_INT_VBUSTI:\r
                                                AVR32_USBB.USBCON.vbuste      = false;\r
                                                break;\r
+                                       #if defined(USB_CAN_BE_BOTH)\r
                                        case USB_INT_IDTI:\r
                                                AVR32_USBB.USBCON.idte        = false;\r
                                                break;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_DEVICE)\r
                                        case USB_INT_WAKEUPI:\r
                                                AVR32_USBB.UDINTECLR.wakeupec = true;\r
                                                break;\r
                                        case USB_INT_SOFI:\r
                                                AVR32_USBB.UDINTECLR.sofec    = true;\r
                                                break;\r
+                                       case USB_INT_RXSTPI:\r
+                                               // TODO\r
+                                               return;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_HOST)\r
                                        case USB_INT_HSOFI:\r
                                                AVR32_USBB.UHINTECLR.hsofiec  = true;\r
                                                break;\r
                                        case USB_INT_VBERRI:\r
                                                AVR32_USBB.USBCON.vberre      = false;\r
                                                break;\r
-                                       case USB_INT_SRPI:\r
-                                       case USB_INT_RXSTPI:\r
-                                               // TODO\r
-                                               return;\r
+                                       #endif\r
                                }\r
                        }\r
                        \r
                                        case USB_INT_VBUSTI:\r
                                                AVR32_USBB.USBSTACLR.vbustic = true;\r
                                                break;\r
+                                       #if defined(USB_CAN_BE_BOTH)\r
                                        case USB_INT_IDTI:\r
                                                AVR32_USBB.USBSTACLR.idtic   = true;\r
                                                break;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_DEVICE)\r
                                        case USB_INT_WAKEUPI:\r
                                                AVR32_USBB.UDINTCLR.wakeupc  = true;\r
                                                break;\r
                                        case USB_INT_SOFI:\r
                                                AVR32_USBB.UDINTCLR.sofc     = true;\r
                                                break;\r
+                                       case USB_INT_RXSTPI:\r
+                                               // TODO\r
+                                               return;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_HOST)\r
                                        case USB_INT_HSOFI:\r
                                                AVR32_USBB.UHINTCLR.hsofic   = true;\r
                                                break;\r
                                        case USB_INT_VBERRI:\r
                                                AVR32_USBB.USBSTACLR.vberric = true;\r
                                                break;\r
-                                       case USB_INT_SRPI:\r
-                                       case USB_INT_RXSTPI:\r
-                                               // TODO\r
-                                               return;\r
+                                       #endif\r
                                }\r
                        }\r
                        \r
                                {\r
                                        case USB_INT_VBUSTI:\r
                                                return AVR32_USBB.USBCON.vbuste;\r
+                                       #if defined(USB_CAN_BE_BOTH)\r
                                        case USB_INT_IDTI:\r
                                                return AVR32_USBB.USBCON.idte;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_DEVICE)\r
                                        case USB_INT_WAKEUPI:\r
                                                return AVR32_USBB.UDINTE.wakeupe;\r
                                        case USB_INT_SUSPI:\r
                                                return AVR32_USBB.UDINTE.eorste;\r
                                        case USB_INT_SOFI:\r
                                                return AVR32_USBB.UDINTE.sofe;\r
+                                       case USB_INT_RXSTPI:\r
+                                               // TODO\r
+                                               return false;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_HOST)                                    \r
                                        case USB_INT_HSOFI:\r
                                                return AVR32_USBB.UHINTE.hsofie;\r
                                        case USB_INT_DCONNI:\r
                                                return AVR32_USBB.USBCON.bcerre;\r
                                        case USB_INT_VBERRI:\r
                                                return AVR32_USBB.USBCON.vberre;\r
-                                       case USB_INT_SRPI:\r
-                                       case USB_INT_RXSTPI:\r
-                                               // TODO\r
-                                               return false;\r
+                                       #endif\r
                                }\r
                                \r
                                return false;\r
                                {\r
                                        case USB_INT_VBUSTI:\r
                                                return AVR32_USBB.USBSTA.vbusti;\r
+                                       #if defined(USB_CAN_BE_BOTH)\r
                                        case USB_INT_IDTI:\r
                                                return AVR32_USBB.USBSTA.idti;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_DEVICE)\r
                                        case USB_INT_WAKEUPI:\r
                                                return AVR32_USBB.UDINT.wakeup;\r
                                        case USB_INT_SUSPI:\r
                                                return AVR32_USBB.UDINT.eorst;\r
                                        case USB_INT_SOFI:\r
                                                return AVR32_USBB.UDINT.sof;\r
+                                       case USB_INT_RXSTPI:\r
+                                               // TODO\r
+                                               return false;\r
+                                       #endif\r
+                                       #if defined(USB_CAN_BE_HOST)\r
                                        case USB_INT_HSOFI:\r
                                                return AVR32_USBB.UHINT.hsofi;\r
                                        case USB_INT_DCONNI:\r
                                                return AVR32_USBB.USBSTA.bcerri;\r
                                        case USB_INT_VBERRI:\r
                                                return AVR32_USBB.USBSTA.vberri;\r
-                                       case USB_INT_SRPI:\r
-                                       case USB_INT_RXSTPI:\r
-                                               // TODO\r
-                                               return false;\r
+                                       #endif\r
                                }\r
 \r
                                return false;\r
index 719b97b..fc18029 100644 (file)
@@ -50,6 +50,7 @@
 \r
        /* Includes: */\r
                #include "../../../Common/Common.h"\r
+               #include "USBMode.h"            \r
 \r
        /* Preprocessor Checks and Defines: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
index b850f3f..735d0e1 100644 (file)
@@ -43,6 +43,7 @@
 \r
        /* Includes: */\r
                #include "../../../Common/Common.h"\r
+               #include "USBMode.h"            \r
                \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
index f2ed7b7..267c7e0 100644 (file)
 
        /* Includes: */
                #include "../../../Common/Common.h"
+               #include "USBMode.h"            
                #include "USBController.h"
                #include "Events.h"
                #include "StdRequestType.h"
                #include "StdDescriptors.h"
-               #include "USBMode.h"
 
                #if defined(USB_CAN_BE_DEVICE)
                        #include "DeviceStandardReq.h"