aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2014-09-14 11:45:02 +1000
committerDean Camera <dean@fourwalledcubicle.com>2014-09-14 11:45:02 +1000
commit41634c45303643e3756b3af9d0123095942481bb (patch)
treef39030c861b8ff9225f31d0fecd5639934b68988
parent6c8ebd70c763790c3550be9b9e8b81aa1e225415 (diff)
downloadlufa-41634c45303643e3756b3af9d0123095942481bb.tar.gz
lufa-41634c45303643e3756b3af9d0123095942481bb.tar.bz2
lufa-41634c45303643e3756b3af9d0123095942481bb.zip
Obsolete the old MACROS and MACROE convenience macros.
-rw-r--r--Bootloaders/MassStorage/Lib/SCSI.h6
-rw-r--r--Demos/Device/ClassDriver/MassStorage/Lib/SCSI.h6
-rw-r--r--Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h6
-rw-r--r--Demos/Device/ClassDriver/RNDISEthernet/Lib/TCP.h10
-rw-r--r--Demos/Device/ClassDriver/VirtualSerialMassStorage/Lib/SCSI.h6
-rw-r--r--Demos/Device/LowLevel/MassStorage/Lib/SCSI.h6
-rw-r--r--Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h10
-rw-r--r--LUFA/Common/ArchitectureSpecific.h88
-rw-r--r--LUFA/Common/Common.h18
-rw-r--r--LUFA/Drivers/USB/Core/USBTask.h6
-rw-r--r--Projects/AVRISP-MKII/Config/AppConfig.h2
-rw-r--r--Projects/AVRISP-MKII/makefile6
-rw-r--r--Projects/TempDataLogger/Lib/SCSI.h6
-rw-r--r--Projects/Webserver/Lib/SCSI.h6
14 files changed, 91 insertions, 91 deletions
diff --git a/Bootloaders/MassStorage/Lib/SCSI.h b/Bootloaders/MassStorage/Lib/SCSI.h
index d3b0ddd3b..3529fde60 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 a8f3b7372..f663baa5c 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 9db10693f..8ccc146ca 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 754842a02..92fbdf362 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 38cb6a6d5..d26a82bde 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 2b0133fdc..36553bd7b 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 e5bf0f312..0d96430ba 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 e7608d4cd..292e27b37 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 38afb8522..3e12e4f33 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 7c0917fc1..7205ea1da 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 066480699..979b354c4 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 bf6ca316f..c89648d5a 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 1a01a55ea..ec9c3e2a4 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 b4eca1dd5..53274dd89 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