summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/acpi/acoutput.h36
1 files changed, 20 insertions, 16 deletions
diff --git a/include/acpi/acoutput.h b/include/acpi/acoutput.h
index 23db272e0bff..b48cb3459778 100644
--- a/include/acpi/acoutput.h
+++ b/include/acpi/acoutput.h
@@ -281,7 +281,16 @@
* debug message outside of the print function itself. This improves overall
* performance at a relatively small code cost. Implementation involves the
* use of variadic macros supported by C99.
+ *
+ * Note: the ACPI_DO_WHILE0 macro is used to prevent some compilers from
+ * complaining about these constructs. On other compilers the do...while
+ * adds some extra code, so this feature is optional.
*/
+#ifdef ACPI_USE_DO_WHILE_0
+#define ACPI_DO_WHILE0(a) do a while(0)
+#else
+#define ACPI_DO_WHILE0(a) a
+#endif
/* DEBUG_PRINT functions */
@@ -290,17 +299,21 @@
/* Helper macros for DEBUG_PRINT */
-#define ACPI_DEBUG(function, level, line, filename, modulename, component, ...) \
- if (ACPI_IS_DEBUG_ENABLED (level, component)) \
- { \
- function (level, line, filename, modulename, component, __VA_ARGS__); \
- }
+#define ACPI_DO_DEBUG_PRINT(function, level, line, filename, modulename, component, ...) \
+ ACPI_DO_WHILE0 ({ \
+ if (ACPI_IS_DEBUG_ENABLED (level, component)) \
+ { \
+ function (level, line, filename, modulename, component, __VA_ARGS__); \
+ } \
+ })
#define ACPI_ACTUAL_DEBUG(level, line, filename, modulename, component, ...) \
- ACPI_DEBUG (acpi_debug_print, level, line, filename, modulename, component, __VA_ARGS__)
+ ACPI_DO_DEBUG_PRINT (acpi_debug_print, level, line, \
+ filename, modulename, component, __VA_ARGS__)
#define ACPI_ACTUAL_DEBUG_RAW(level, line, filename, modulename, component, ...) \
- ACPI_DEBUG (acpi_debug_print_raw, level, line, filename, modulename, component, __VA_ARGS__)
+ ACPI_DO_DEBUG_PRINT (acpi_debug_print_raw, level, line, \
+ filename, modulename, component, __VA_ARGS__)
/*
* Function entry tracing
@@ -342,16 +355,7 @@
*
* One of the FUNCTION_TRACE macros above must be used in conjunction
* with these macros so that "_AcpiFunctionName" is defined.
- *
- * Note: the DO_WHILE0 macro is used to prevent some compilers from
- * complaining about these constructs. On other compilers the do...while
- * adds some extra code, so this feature is optional.
*/
-#ifdef ACPI_USE_DO_WHILE_0
-#define ACPI_DO_WHILE0(a) do a while(0)
-#else
-#define ACPI_DO_WHILE0(a) a
-#endif
/* Exit trace helper macro */