|
@@ -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 */
|
|
|
|