From 41634c45303643e3756b3af9d0123095942481bb Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 14 Sep 2014 11:45:02 +1000 Subject: [PATCH] Obsolete the old MACROS and MACROE convenience macros. --- Bootloaders/MassStorage/Lib/SCSI.h | 6 +- .../Device/ClassDriver/MassStorage/Lib/SCSI.h | 6 +- .../MassStorageKeyboard/Lib/SCSI.h | 6 +- .../ClassDriver/RNDISEthernet/Lib/TCP.h | 10 +-- .../VirtualSerialMassStorage/Lib/SCSI.h | 6 +- Demos/Device/LowLevel/MassStorage/Lib/SCSI.h | 6 +- Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h | 10 +-- LUFA/Common/ArchitectureSpecific.h | 88 ++++++++++--------- LUFA/Common/Common.h | 18 ++-- LUFA/Drivers/USB/Core/USBTask.h | 6 +- Projects/AVRISP-MKII/Config/AppConfig.h | 2 +- Projects/AVRISP-MKII/makefile | 6 +- Projects/TempDataLogger/Lib/SCSI.h | 6 +- Projects/Webserver/Lib/SCSI.h | 6 +- 14 files changed, 91 insertions(+), 91 deletions(-) diff --git a/Bootloaders/MassStorage/Lib/SCSI.h b/Bootloaders/MassStorage/Lib/SCSI.h index d3b0ddd3bb..3529fde605 100644 --- a/Bootloaders/MassStorage/Lib/SCSI.h +++ b/Bootloaders/MassStorage/Lib/SCSI.h @@ -55,9 +55,9 @@ * \param[in] Acode New SCSI additional sense key to set the additional sense code to * \param[in] Aqual New SCSI additional sense key qualifier to set the additional sense qualifier code to */ - #define SCSI_SET_SENSE(Key, Acode, Aqual) MACROS{ SenseData.SenseKey = (Key); \ - SenseData.AdditionalSenseCode = (Acode); \ - SenseData.AdditionalSenseQualifier = (Aqual); }MACROE + #define SCSI_SET_SENSE(Key, Acode, Aqual) do { SenseData.SenseKey = (Key); \ + SenseData.AdditionalSenseCode = (Acode); \ + SenseData.AdditionalSenseQualifier = (Aqual); } while (0) /** Macro for the \ref SCSI_Command_ReadWrite_10() function, to indicate that data is to be read from the storage medium. */ #define DATA_READ true diff --git a/Demos/Device/ClassDriver/MassStorage/Lib/SCSI.h b/Demos/Device/ClassDriver/MassStorage/Lib/SCSI.h index a8f3b73726..f663baa5c4 100644 --- a/Demos/Device/ClassDriver/MassStorage/Lib/SCSI.h +++ b/Demos/Device/ClassDriver/MassStorage/Lib/SCSI.h @@ -56,9 +56,9 @@ * \param[in] Acode New SCSI additional sense key to set the additional sense code to * \param[in] Aqual New SCSI additional sense key qualifier to set the additional sense qualifier code to */ - #define SCSI_SET_SENSE(Key, Acode, Aqual) MACROS{ SenseData.SenseKey = (Key); \ - SenseData.AdditionalSenseCode = (Acode); \ - SenseData.AdditionalSenseQualifier = (Aqual); }MACROE + #define SCSI_SET_SENSE(Key, Acode, Aqual) do { SenseData.SenseKey = (Key); \ + SenseData.AdditionalSenseCode = (Acode); \ + SenseData.AdditionalSenseQualifier = (Aqual); } while (0) /** Macro for the \ref SCSI_Command_ReadWrite_10() function, to indicate that data is to be read from the storage medium. */ #define DATA_READ true diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h b/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h index 9db10693f6..8ccc146ca2 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h @@ -56,9 +56,9 @@ * \param[in] Acode New SCSI additional sense key to set the additional sense code to * \param[in] Aqual New SCSI additional sense key qualifier to set the additional sense qualifier code to */ - #define SCSI_SET_SENSE(Key, Acode, Aqual) MACROS{ SenseData.SenseKey = (Key); \ - SenseData.AdditionalSenseCode = (Acode); \ - SenseData.AdditionalSenseQualifier = (Aqual); }MACROE + #define SCSI_SET_SENSE(Key, Acode, Aqual) do { SenseData.SenseKey = (Key); \ + SenseData.AdditionalSenseCode = (Acode); \ + SenseData.AdditionalSenseQualifier = (Aqual); } while (0) /** Macro for the \ref SCSI_Command_ReadWrite_10() function, to indicate that data is to be read from the storage medium. */ #define DATA_READ true diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Lib/TCP.h b/Demos/Device/ClassDriver/RNDISEthernet/Lib/TCP.h index 754842a02e..92fbdf3620 100644 --- a/Demos/Device/ClassDriver/RNDISEthernet/Lib/TCP.h +++ b/Demos/Device/ClassDriver/RNDISEthernet/Lib/TCP.h @@ -118,32 +118,32 @@ * * \param[in] Buffer Application buffer to lock */ - #define TCP_APP_CAPTURE_BUFFER(Buffer) MACROS{ Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->InUse = true; }MACROE + #define TCP_APP_CAPTURE_BUFFER(Buffer) do { Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->InUse = true; } while (0) /** Application macro: Releases a captured application buffer, allowing for host-to-device packets to be received. * * \param[in] Buffer Application buffer to release */ - #define TCP_APP_RELEASE_BUFFER(Buffer) MACROS{ Buffer->InUse = false; }MACROE + #define TCP_APP_RELEASE_BUFFER(Buffer) do { Buffer->InUse = false; } while (0) /** Application macro: Sends the contents of the given application buffer to the host. * * \param[in] Buffer Application buffer to send * \param[in] Len Length of data contained in the buffer */ - #define TCP_APP_SEND_BUFFER(Buffer, Len) MACROS{ Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->Length = Len; Buffer->Ready = true; }MACROE + #define TCP_APP_SEND_BUFFER(Buffer, Len) do { Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->Length = Len; Buffer->Ready = true; } while (0) /** Application macro: Clears the application buffer, ready for a packet to be written to it. * * \param[in] Buffer Application buffer to clear */ - #define TCP_APP_CLEAR_BUFFER(Buffer) MACROS{ Buffer->Ready = false; Buffer->Length = 0; }MACROE + #define TCP_APP_CLEAR_BUFFER(Buffer) do { Buffer->Ready = false; Buffer->Length = 0; } while (0) /** Application macro: Closes an open connection to a host. * * \param[in] Connection Open TCP connection to close */ - #define TCP_APP_CLOSECONNECTION(Connection) MACROS{ Connection->State = TCP_Connection_Closing; }MACROE + #define TCP_APP_CLOSECONNECTION(Connection) do { Connection->State = TCP_Connection_Closing; } while (0) /* Enums: */ /** Enum for possible TCP port states. */ diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Lib/SCSI.h b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Lib/SCSI.h index 38cb6a6d54..d26a82bdeb 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Lib/SCSI.h +++ b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Lib/SCSI.h @@ -56,9 +56,9 @@ * \param[in] Acode New SCSI additional sense key to set the additional sense code to * \param[in] Aqual New SCSI additional sense key qualifier to set the additional sense qualifier code to */ - #define SCSI_SET_SENSE(Key, Acode, Aqual) MACROS{ SenseData.SenseKey = (Key); \ - SenseData.AdditionalSenseCode = (Acode); \ - SenseData.AdditionalSenseQualifier = (Aqual); }MACROE + #define SCSI_SET_SENSE(Key, Acode, Aqual) do { SenseData.SenseKey = (Key); \ + SenseData.AdditionalSenseCode = (Acode); \ + SenseData.AdditionalSenseQualifier = (Aqual); } while (0) /** Macro for the \ref SCSI_Command_ReadWrite_10() function, to indicate that data is to be read from the storage medium. */ #define DATA_READ true diff --git a/Demos/Device/LowLevel/MassStorage/Lib/SCSI.h b/Demos/Device/LowLevel/MassStorage/Lib/SCSI.h index 2b0133fdc0..36553bd7b3 100644 --- a/Demos/Device/LowLevel/MassStorage/Lib/SCSI.h +++ b/Demos/Device/LowLevel/MassStorage/Lib/SCSI.h @@ -57,9 +57,9 @@ * \param[in] Acode New SCSI additional sense key to set the additional sense code to * \param[in] Aqual New SCSI additional sense key qualifier to set the additional sense qualifier code to */ - #define SCSI_SET_SENSE(Key, Acode, Aqual) MACROS{ SenseData.SenseKey = (Key); \ - SenseData.AdditionalSenseCode = (Acode); \ - SenseData.AdditionalSenseQualifier = (Aqual); }MACROE + #define SCSI_SET_SENSE(Key, Acode, Aqual) do { SenseData.SenseKey = (Key); \ + SenseData.AdditionalSenseCode = (Acode); \ + SenseData.AdditionalSenseQualifier = (Aqual); } while (0) /** Macro for the \ref SCSI_Command_ReadWrite_10() function, to indicate that data is to be read from the storage medium. */ #define DATA_READ true diff --git a/Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h b/Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h index e5bf0f3122..0d96430bab 100644 --- a/Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h +++ b/Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h @@ -119,32 +119,32 @@ * * \param[in] Buffer Application buffer to lock */ - #define TCP_APP_CAPTURE_BUFFER(Buffer) MACROS{ Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->InUse = true; }MACROE + #define TCP_APP_CAPTURE_BUFFER(Buffer) do { Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->InUse = true; } while (0) /** Application macro: Releases a captured application buffer, allowing for host-to-device packets to be received. * * \param[in] Buffer Application buffer to release */ - #define TCP_APP_RELEASE_BUFFER(Buffer) MACROS{ Buffer->InUse = false; }MACROE + #define TCP_APP_RELEASE_BUFFER(Buffer) do { Buffer->InUse = false; } while (0) /** Application macro: Sends the contents of the given application buffer to the host. * * \param[in] Buffer Application buffer to send * \param[in] Len Length of data contained in the buffer */ - #define TCP_APP_SEND_BUFFER(Buffer, Len) MACROS{ Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->Length = Len; Buffer->Ready = true; }MACROE + #define TCP_APP_SEND_BUFFER(Buffer, Len) do { Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->Length = Len; Buffer->Ready = true; } while (0) /** Application macro: Clears the application buffer, ready for a packet to be written to it. * * \param[in] Buffer Application buffer to clear */ - #define TCP_APP_CLEAR_BUFFER(Buffer) MACROS{ Buffer->Ready = false; Buffer->Length = 0; }MACROE + #define TCP_APP_CLEAR_BUFFER(Buffer) do { Buffer->Ready = false; Buffer->Length = 0; } while (0) /** Application macro: Closes an open connection to a host. * * \param[in] Connection Open TCP connection to close */ - #define TCP_APP_CLOSECONNECTION(Connection) MACROS{ Connection->State = TCP_Connection_Closing; }MACROE + #define TCP_APP_CLOSECONNECTION(Connection) do { Connection->State = TCP_Connection_Closing; } while (0) /* Enums: */ /** Enum for possible TCP port states. */ diff --git a/LUFA/Common/ArchitectureSpecific.h b/LUFA/Common/ArchitectureSpecific.h index e7608d4cda..292e27b37f 100644 --- a/LUFA/Common/ArchitectureSpecific.h +++ b/LUFA/Common/ArchitectureSpecific.h @@ -70,18 +70,18 @@ * * \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 @@ -89,18 +89,18 @@ * * \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 @@ -124,7 +124,10 @@ * * \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 @@ -136,17 +139,17 @@ * * \param[in] Condition Condition that will be evaluated, */ - #define STDOUT_ASSERT(Condition) MACROS{ if (!(Condition)) { \ - 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_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. 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. * @@ -154,16 +157,21 @@ * * \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 (!(Condition)) { \ - 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: */ diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h index 38afb85227..3e12e4f33f 100644 --- a/LUFA/Common/Common.h +++ b/LUFA/Common/Common.h @@ -145,19 +145,11 @@ /* Public Interface - May be used in end-application: */ /* Macros: */ - /** Macro for encasing other multi-statement macros. This should be used along with an opening brace - * before the start of any multi-statement macro, so that the macros contents as a whole are treated - * as a discrete block and not as a list of separate statements which may cause problems when used as - * a block (such as inline \c if statements). - */ - #define MACROS do - - /** Macro for encasing other multi-statement macros. This should be used along with a preceding closing - * brace at the end of any multi-statement macro, so that the macros contents as a whole are treated - * as a discrete block and not as a list of separate statements which may cause problems when used as - * a block (such as inline \c if statements). - */ - #define MACROE while (0) + #if !defined(__DOXYGEN__) + // Obsolete, retained for compatibility with user code + #define MACROS do + #define MACROE while (0) + #endif /** Convenience macro to determine the larger of two values. * diff --git a/LUFA/Drivers/USB/Core/USBTask.h b/LUFA/Drivers/USB/Core/USBTask.h index 7c0917fc19..7205ea1da9 100644 --- a/LUFA/Drivers/USB/Core/USBTask.h +++ b/LUFA/Drivers/USB/Core/USBTask.h @@ -186,9 +186,9 @@ #endif /* Macros: */ - #define HOST_TASK_NONBLOCK_WAIT(Duration, NextState) MACROS{ USB_HostState = HOST_STATE_WaitForDevice; \ - WaitMSRemaining = (Duration); \ - PostWaitState = (NextState); }MACROE + #define HOST_TASK_NONBLOCK_WAIT(Duration, NextState) do { USB_HostState = HOST_STATE_WaitForDevice; \ + WaitMSRemaining = (Duration); \ + PostWaitState = (NextState); } while (0) #endif /* Disable C linkage for C++ Compilers: */ diff --git a/Projects/AVRISP-MKII/Config/AppConfig.h b/Projects/AVRISP-MKII/Config/AppConfig.h index 0664806996..979b354c44 100644 --- a/Projects/AVRISP-MKII/Config/AppConfig.h +++ b/Projects/AVRISP-MKII/Config/AppConfig.h @@ -63,7 +63,7 @@ // #define XCK_RESCUE_CLOCK_ENABLE // #define INVERTED_ISP_MISO -// #define LIBUSB_DRIVER_COMPAT + #define LIBUSB_DRIVER_COMPAT // #define RESET_TOGGLES_LIBUSB_COMPAT // #define FIRMWARE_VERSION_MINOR 0x11 diff --git a/Projects/AVRISP-MKII/makefile b/Projects/AVRISP-MKII/makefile index bf6ca316f1..c89648d5a4 100644 --- a/Projects/AVRISP-MKII/makefile +++ b/Projects/AVRISP-MKII/makefile @@ -11,10 +11,10 @@ # Run "make help" for target help. -MCU = at90usb162 +MCU = at90usb1287 ARCH = AVR8 -BOARD = USBTINYMKII -F_CPU = 16000000 +BOARD = USBKEY +F_CPU = 8000000 F_USB = $(F_CPU) OPTIMIZATION = s TARGET = AVRISP-MKII diff --git a/Projects/TempDataLogger/Lib/SCSI.h b/Projects/TempDataLogger/Lib/SCSI.h index 1a01a55ea0..ec9c3e2a4f 100644 --- a/Projects/TempDataLogger/Lib/SCSI.h +++ b/Projects/TempDataLogger/Lib/SCSI.h @@ -56,9 +56,9 @@ * \param[in] Acode New SCSI additional sense key to set the additional sense code to * \param[in] Aqual New SCSI additional sense key qualifier to set the additional sense qualifier code to */ - #define SCSI_SET_SENSE(Key, Acode, Aqual) MACROS{ SenseData.SenseKey = (Key); \ - SenseData.AdditionalSenseCode = (Acode); \ - SenseData.AdditionalSenseQualifier = (Aqual); }MACROE + #define SCSI_SET_SENSE(Key, Acode, Aqual) do { SenseData.SenseKey = (Key); \ + SenseData.AdditionalSenseCode = (Acode); \ + SenseData.AdditionalSenseQualifier = (Aqual); } while (0) /** Macro for the \ref SCSI_Command_ReadWrite_10() function, to indicate that data is to be read from the storage medium. */ #define DATA_READ true diff --git a/Projects/Webserver/Lib/SCSI.h b/Projects/Webserver/Lib/SCSI.h index b4eca1dd5c..53274dd892 100644 --- a/Projects/Webserver/Lib/SCSI.h +++ b/Projects/Webserver/Lib/SCSI.h @@ -54,9 +54,9 @@ * \param[in] Acode New SCSI additional sense key to set the additional sense code to * \param[in] Aqual New SCSI additional sense key qualifier to set the additional sense qualifier code to */ - #define SCSI_SET_SENSE(Key, Acode, Aqual) MACROS{ SenseData.SenseKey = (Key); \ - SenseData.AdditionalSenseCode = (Acode); \ - SenseData.AdditionalSenseQualifier = (Aqual); }MACROE + #define SCSI_SET_SENSE(Key, Acode, Aqual) do { SenseData.SenseKey = (Key); \ + SenseData.AdditionalSenseCode = (Acode); \ + SenseData.AdditionalSenseQualifier = (Aqual); } while (0) /** Macro for the \ref SCSI_Command_ReadWrite_10() function, to indicate that data is to be read from the storage medium. */ #define DATA_READ true