Fix compile errors when both Host and Device modes are enabled.
[pub/USBasp.git] / LUFA / Common / Common.h
index e349063..5635a4e 100644 (file)
                #include <string.h>
                #include <stddef.h>
                
+               #if defined(USE_LUFA_CONFIG_HEADER)
+                       #include "LUFAConfig.h"
+               #endif
+
                #include "Architectures.h"
                #include "Attributes.h"
                #include "BoardTypes.h"
                
        /* Architecture specific utility includes: */
                #if defined(__DOXYGEN__)
-                       /** Type define for an unsigned integer the same width as the selected architecture's machine register. */
+                       /** Type define for an unsigned integer the same width as the selected architecture's machine register.
+                        *  This is distinct from the non-specific standard int data type, whose width is machine dependant but
+                        *  which may not reflect the actual machine register width on some targets (e.g. AVR8).
+                        */
                        typedef MACHINE_REG_t uint_reg_t;
                #elif (ARCH == ARCH_AVR8)
                        #include <avr/io.h>
 
                        #if (ARCH == ARCH_AVR8) || defined(__DOXYGEN__)
                                /** Defines a volatile \c NOP statement which cannot be optimized out by the compiler, and thus can always
-                                *  be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser
+                                *  be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimizer
                                 *  removes/reorders code to the point where break points cannot reliably be set.
                                 *
                                 *  \note This macro is not available for all architectures.
                                 *
                                 *  \param Name  Unique name of the interrupt service routine.
                                 */
-                               #define ISR(Name, ...)                  void Name (void) __attribute__((__interrupt__)); void Name (void)
+                               #define ISR(Name, ...)                  void Name (void) __attribute__((__interrupt__)) __VA_ARGS__; void Name (void)
                        #endif
 
                /* Inline Functions: */