--- source/include/acoutput.h.orig 2012-12-20 13:13:22.000000000 -0500 +++ source/include/acoutput.h 2013-01-02 17:55:36.000000000 -0500 @@ -137,7 +137,7 @@ /* * Debug level macros that are used in the DEBUG_PRINT macros */ -#define ACPI_DEBUG_LEVEL(dl) (UINT32) dl,ACPI_DEBUG_PARAMETERS +#define _DEBUG_LEVEL(dl) (UINT32) dl,_DEBUG_PARAMETERS /* * Exception level -- used in the global "DebugLevel" @@ -145,38 +145,38 @@ * Note: For errors, use the ACPI_ERROR or ACPI_EXCEPTION interfaces. * For warnings, use ACPI_WARNING. */ -#define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT) -#define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT) -#define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO) -#define ACPI_DB_REPAIR ACPI_DEBUG_LEVEL (ACPI_LV_REPAIR) -#define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS) +#define ACPI_DB_INIT _DEBUG_LEVEL (ACPI_LV_INIT) +#define ACPI_DB_DEBUG_OBJECT _DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT) +#define ACPI_DB_INFO _DEBUG_LEVEL (ACPI_LV_INFO) +#define ACPI_DB_REPAIR _DEBUG_LEVEL (ACPI_LV_REPAIR) +#define ACPI_DB_ALL_EXCEPTIONS _DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS) /* Trace level -- also used in the global "DebugLevel" */ -#define ACPI_DB_INIT_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_INIT_NAMES) -#define ACPI_DB_THREADS ACPI_DEBUG_LEVEL (ACPI_LV_THREADS) -#define ACPI_DB_PARSE ACPI_DEBUG_LEVEL (ACPI_LV_PARSE) -#define ACPI_DB_DISPATCH ACPI_DEBUG_LEVEL (ACPI_LV_DISPATCH) -#define ACPI_DB_LOAD ACPI_DEBUG_LEVEL (ACPI_LV_LOAD) -#define ACPI_DB_EXEC ACPI_DEBUG_LEVEL (ACPI_LV_EXEC) -#define ACPI_DB_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_NAMES) -#define ACPI_DB_OPREGION ACPI_DEBUG_LEVEL (ACPI_LV_OPREGION) -#define ACPI_DB_BFIELD ACPI_DEBUG_LEVEL (ACPI_LV_BFIELD) -#define ACPI_DB_TABLES ACPI_DEBUG_LEVEL (ACPI_LV_TABLES) -#define ACPI_DB_FUNCTIONS ACPI_DEBUG_LEVEL (ACPI_LV_FUNCTIONS) -#define ACPI_DB_OPTIMIZATIONS ACPI_DEBUG_LEVEL (ACPI_LV_OPTIMIZATIONS) -#define ACPI_DB_VALUES ACPI_DEBUG_LEVEL (ACPI_LV_VALUES) -#define ACPI_DB_OBJECTS ACPI_DEBUG_LEVEL (ACPI_LV_OBJECTS) -#define ACPI_DB_ALLOCATIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALLOCATIONS) -#define ACPI_DB_RESOURCES ACPI_DEBUG_LEVEL (ACPI_LV_RESOURCES) -#define ACPI_DB_IO ACPI_DEBUG_LEVEL (ACPI_LV_IO) -#define ACPI_DB_INTERRUPTS ACPI_DEBUG_LEVEL (ACPI_LV_INTERRUPTS) -#define ACPI_DB_USER_REQUESTS ACPI_DEBUG_LEVEL (ACPI_LV_USER_REQUESTS) -#define ACPI_DB_PACKAGE ACPI_DEBUG_LEVEL (ACPI_LV_PACKAGE) -#define ACPI_DB_MUTEX ACPI_DEBUG_LEVEL (ACPI_LV_MUTEX) -#define ACPI_DB_EVENTS ACPI_DEBUG_LEVEL (ACPI_LV_EVENTS) +#define ACPI_DB_INIT_NAMES _DEBUG_LEVEL (ACPI_LV_INIT_NAMES) +#define ACPI_DB_THREADS _DEBUG_LEVEL (ACPI_LV_THREADS) +#define ACPI_DB_PARSE _DEBUG_LEVEL (ACPI_LV_PARSE) +#define ACPI_DB_DISPATCH _DEBUG_LEVEL (ACPI_LV_DISPATCH) +#define ACPI_DB_LOAD _DEBUG_LEVEL (ACPI_LV_LOAD) +#define ACPI_DB_EXEC _DEBUG_LEVEL (ACPI_LV_EXEC) +#define ACPI_DB_NAMES _DEBUG_LEVEL (ACPI_LV_NAMES) +#define ACPI_DB_OPREGION _DEBUG_LEVEL (ACPI_LV_OPREGION) +#define ACPI_DB_BFIELD _DEBUG_LEVEL (ACPI_LV_BFIELD) +#define ACPI_DB_TABLES _DEBUG_LEVEL (ACPI_LV_TABLES) +#define ACPI_DB_FUNCTIONS _DEBUG_LEVEL (ACPI_LV_FUNCTIONS) +#define ACPI_DB_OPTIMIZATIONS _DEBUG_LEVEL (ACPI_LV_OPTIMIZATIONS) +#define ACPI_DB_VALUES _DEBUG_LEVEL (ACPI_LV_VALUES) +#define ACPI_DB_OBJECTS _DEBUG_LEVEL (ACPI_LV_OBJECTS) +#define ACPI_DB_ALLOCATIONS _DEBUG_LEVEL (ACPI_LV_ALLOCATIONS) +#define ACPI_DB_RESOURCES _DEBUG_LEVEL (ACPI_LV_RESOURCES) +#define ACPI_DB_IO _DEBUG_LEVEL (ACPI_LV_IO) +#define ACPI_DB_INTERRUPTS _DEBUG_LEVEL (ACPI_LV_INTERRUPTS) +#define ACPI_DB_USER_REQUESTS _DEBUG_LEVEL (ACPI_LV_USER_REQUESTS) +#define ACPI_DB_PACKAGE _DEBUG_LEVEL (ACPI_LV_PACKAGE) +#define ACPI_DB_MUTEX _DEBUG_LEVEL (ACPI_LV_MUTEX) +#define ACPI_DB_EVENTS _DEBUG_LEVEL (ACPI_LV_EVENTS) -#define ACPI_DB_ALL ACPI_DEBUG_LEVEL (ACPI_LV_ALL) +#define ACPI_DB_ALL _DEBUG_LEVEL (ACPI_LV_ALL) /* Defaults for DebugLevel, debug and normal */ @@ -267,7 +267,7 @@ * Common parameters used for debug output functions: * line number, function name, module(file) name, component ID */ -#define ACPI_DEBUG_PARAMETERS \ +#define _DEBUG_PARAMETERS \ __LINE__, ACPI_GET_FUNCTION_NAME, _AcpiModuleName, _COMPONENT /* Check if debug output is currently dynamically enabled */ @@ -285,7 +285,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 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 */ @@ -294,17 +303,19 @@ /* 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 _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 (AcpiDebugPrint, Level, Line, Filename, Modulename, Component, __VA_ARGS__) + _DEBUG_PRINT (AcpiDebugPrint, Level, Line, Filename, Modulename, Component, __VA_ARGS__) #define ACPI_ACTUAL_DEBUG_RAW(Level, Line, Filename, Modulename, Component, ...) \ - ACPI_DEBUG (AcpiDebugPrintRaw, Level, Line, Filename, Modulename, Component, __VA_ARGS__) + _DEBUG_PRINT (AcpiDebugPrintRaw, Level, Line, Filename, Modulename, Component, __VA_ARGS__) /* @@ -316,24 +327,24 @@ /* Helper macro */ -#define ACPI_TRACE_ENTRY(Name, Function, Cast, Param) \ +#define _TRACE_ENTRY(Name, Function, Cast, Param) \ ACPI_FUNCTION_NAME (Name) \ - Function (ACPI_DEBUG_PARAMETERS, Cast (Param)) + Function (_DEBUG_PARAMETERS, Cast (Param)) /* The actual entry trace macros */ #define ACPI_FUNCTION_TRACE(Name) \ ACPI_FUNCTION_NAME(Name) \ - AcpiUtTrace (ACPI_DEBUG_PARAMETERS) + AcpiUtTrace (_DEBUG_PARAMETERS) #define ACPI_FUNCTION_TRACE_PTR(Name, Pointer) \ - ACPI_TRACE_ENTRY (Name, AcpiUtTracePtr, (void *), Pointer) + _TRACE_ENTRY (Name, AcpiUtTracePtr, (void *), Pointer) #define ACPI_FUNCTION_TRACE_U32(Name, Value) \ - ACPI_TRACE_ENTRY (Name, AcpiUtTraceU32, (UINT32), Value) + _TRACE_ENTRY (Name, AcpiUtTraceU32, (UINT32), Value) #define ACPI_FUNCTION_TRACE_STR(Name, String) \ - ACPI_TRACE_ENTRY (Name, AcpiUtTraceStr, (char *), String) + _TRACE_ENTRY (Name, AcpiUtTraceStr, (char *), String) #define ACPI_FUNCTION_ENTRY() \ AcpiUtTrackStackPtr() @@ -348,22 +359,13 @@ * * 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 */ -#define ACPI_TRACE_EXIT(Function, Cast, Param) \ +#define _TRACE_EXIT(Function, Cast, Param) \ ACPI_DO_WHILE0 ({ \ - Function (ACPI_DEBUG_PARAMETERS, Cast (Param)); \ + Function (_DEBUG_PARAMETERS, Cast (Param)); \ return ((Param)); \ }) @@ -371,18 +373,18 @@ #define return_VOID \ ACPI_DO_WHILE0 ({ \ - AcpiUtExit (ACPI_DEBUG_PARAMETERS); \ + AcpiUtExit (_DEBUG_PARAMETERS); \ return; \ }) #define return_ACPI_STATUS(Status) \ - ACPI_TRACE_EXIT (AcpiUtStatusExit, (ACPI_STATUS), Status) + _TRACE_EXIT (AcpiUtStatusExit, (ACPI_STATUS), Status) #define return_PTR(Pointer) \ - ACPI_TRACE_EXIT (AcpiUtPtrExit, (UINT8 *), Pointer) + _TRACE_EXIT (AcpiUtPtrExit, (UINT8 *), Pointer) #define return_VALUE(Value) \ - ACPI_TRACE_EXIT (AcpiUtValueExit, (UINT64), Value) + _TRACE_EXIT (AcpiUtValueExit, (UINT64), Value) /* Conditional execution */