Upgrade doxygen configuration files to the latest version.
[pub/lufa.git] / LUFA / Common / ArchitectureSpecific.h
index 3f5e43b..2d2f662 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2021.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2021  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
                                         *
                                         *  \note This macro is not available for all architectures.
                                         */
-                                       #define JTAG_ENABLE()                  MACROS{                                      \
-                                                                                                                                       __asm__ __volatile__ (               \
-                                                                                                                                       "in __tmp_reg__,__SREG__" "\n\t"     \
-                                                                                                                                       "cli" "\n\t"                         \
-                                                                                                                                       "out %1, %0" "\n\t"                  \
-                                                                                                                                       "out __SREG__, __tmp_reg__" "\n\t"   \
-                                                                                                                                       "out %1, %0" "\n\t"                  \
-                                                                                                                                       :                                    \
-                                                                                                                                       : "r" (MCUCR & ~(1 << JTD)),         \
-                                                                                                                                         "M" (_SFR_IO_ADDR(MCUCR))          \
-                                                                                                                                       : "r0");                             \
-                                                                                                                       }MACROE
+                                       #define JTAG_ENABLE()               do {                                     \
+                                                                               __asm__ __volatile__ (               \
+                                                                               "in __tmp_reg__,__SREG__" "\n\t"     \
+                                                                               "cli" "\n\t"                         \
+                                                                               "out %1, %0" "\n\t"                  \
+                                                                               "out __SREG__, __tmp_reg__" "\n\t"   \
+                                                                               "out %1, %0" "\n\t"                  \
+                                                                               :                                    \
+                                                                               : "r" (MCUCR & ~(1 << JTD)),         \
+                                                                                 "M" (_SFR_IO_ADDR(MCUCR))          \
+                                                                               : "r0");                             \
+                                                                           } while (0)
 
                                        /** Disables the AVR's JTAG bus in software, until a system reset. This will override the current JTAG
                                         *  status as set by the JTAGEN fuse, disabling JTAG debugging and reverting the JTAG pins back to GPIO
                                         *
                                         *  \note This macro is not available for all architectures.
                                         */
-                                       #define JTAG_DISABLE()                  MACROS{                                      \
-                                                                                                                                       __asm__ __volatile__ (               \
-                                                                                                                                       "in __tmp_reg__,__SREG__" "\n\t"     \
-                                                                                                                                       "cli" "\n\t"                         \
-                                                                                                                                       "out %1, %0" "\n\t"                  \
-                                                                                                                                       "out __SREG__, __tmp_reg__" "\n\t"   \
-                                                                                                                                       "out %1, %0" "\n\t"                  \
-                                                                                                                                       :                                    \
-                                                                                                                                       : "r" (MCUCR | (1 << JTD)),          \
-                                                                                                                                         "M" (_SFR_IO_ADDR(MCUCR))          \
-                                                                                                                                       : "r0");                             \
-                                                                                                                       }MACROE
+                                       #define JTAG_DISABLE()              do {                                     \
+                                                                               __asm__ __volatile__ (               \
+                                                                               "in __tmp_reg__,__SREG__" "\n\t"     \
+                                                                               "cli" "\n\t"                         \
+                                                                               "out %1, %0" "\n\t"                  \
+                                                                               "out __SREG__, __tmp_reg__" "\n\t"   \
+                                                                               "out %1, %0" "\n\t"                  \
+                                                                               :                                    \
+                                                                               : "r" (MCUCR | (1 << JTD)),          \
+                                                                                 "M" (_SFR_IO_ADDR(MCUCR))          \
+                                                                               : "r0");                             \
+                                                                           } while (0)
                                #endif
 
                                /** Defines a volatile \c NOP statement which cannot be optimized out by the compiler, and thus can always
                                 *
                                 *  \param[in] Condition  Condition that will be evaluated.
                                */
-                               #define JTAG_ASSERT(Condition)          MACROS{ if (!(Condition)) { JTAG_DEBUG_BREAK(); } }MACROE
+                               #define JTAG_ASSERT(Condition)          do {                       \
+                                                                           if (!(Condition))      \
+                                                                             JTAG_DEBUG_BREAK();  \
+                                                                       } while (0)
 
                                /** Macro for testing condition \c "x" and writing debug data to the stdout stream if \c false. The stdout stream
                                 *  must be pre-initialized before this macro is run and linked to an output device, such as the microcontroller's
                                 *
                                 *  \param[in] Condition  Condition that will be evaluated,
                                 */
-                               #define STDOUT_ASSERT(Condition)        MACROS{ if (!(x)) {                                             \
-                                                                                    printf_P(PSTR("%s: Function \"%s\", Line %d: "     \
-                                                                                                  "Assertion \"%s\" failed.\r\n"),     \
-                                                                                                  __FILE__, __func__, __LINE__, #Condition); } }MACROE
+                               #define STDOUT_ASSERT(Condition)        do {                                                           \
+                                                                           if (!(Condition))                                          \
+                                                                             printf_P(PSTR("%s: Function \"%s\", Line %d: "           \
+                                                                                           "Assertion \"%s\" failed.\r\n"),           \
+                                                                                           __FILE__, __func__, __LINE__, #Condition); \
+                                                                       } while (0)
 
                                #if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
-                                       /** Reads a pointer out of PROGMEM space on the AVR8 architecture. This is currently a wrapper for the
-                                        *  avr-libc \c pgm_read_ptr() macro with a \c void* cast, so that its value can be assigned directly
-                                        *  to a pointer variable or used in pointer arithmetic without further casting in C. In a future
-                                        *  avr-libc distribution this will be part of the standard API and will be implemented in a more formal
-                                        *  manner.
+                                       /** Reads a pointer out of PROGMEM space on the AVR8 architecture. This is a wrapper for the avr-libc
+                                        *  \c pgm_read_word() macro with a \c void* cast, so that its value can be assigned directly to a
+                                        *  pointer variable or used in pointer arithmetic without further casting in C.
                                         *
                                         *  \note This macro is not available for all architectures.
                                         *
                                         *
                                         *  \return Pointer retrieved from PROGMEM space.
                                         */
-                                       #define pgm_read_ptr(Address)        (void*)pgm_read_word(Address)
+                                       #define pgm_read_ptr(Address)       (void*)pgm_read_word(Address)
                                #endif
                        #elif (ARCH == ARCH_UC3)
                                #define JTAG_DEBUG_POINT()              __asm__ __volatile__ ("nop" ::)
                                #define JTAG_DEBUG_BREAK()              __asm__ __volatile__ ("breakpoint" ::)
-                               #define JTAG_ASSERT(Condition)          MACROS{ if (!(Condition)) { JTAG_DEBUG_BREAK(); } }MACROE
-                               #define STDOUT_ASSERT(Condition)        MACROS{ if (!(x)) {                                      \
-                                                                                    printf("%s: Function \"%s\", Line %d: "     \
-                                                                                           "Assertion \"%s\" failed.\r\n"),     \
-                                                                                           __FILE__, __func__, __LINE__, #Condition); } }MACROE
+                               #define JTAG_ASSERT(Condition)          do {                                                    \
+                                                                           if (!(Condition))                                   \
+                                                                             JTAG_DEBUG_BREAK();                               \
+                                                                       } while (0)
+                               #define STDOUT_ASSERT(Condition)        do {                                                    \
+                                                                           if (!(Condition))                                   \
+                                                                             printf("%s: Function \"%s\", Line %d: "           \
+                                                                                    "Assertion \"%s\" failed.\r\n",            \
+                                                                                    __FILE__, __func__, __LINE__, #Condition); \
+                                                                       } while (0)
                        #endif
 
        /* Disable C linkage for C++ Compilers: */