DBG_ENABLE() and DBG_DISABLE() are currently constrained to enabling
and disabling only debug levels that are compiled in for the current
object. For example, a DBG_ENABLE(DBGLVL_EXTRA) in foo.c will not be
able to affect output from other objects at DBGLVL_EXTRA unless foo.c
is itself compiled with DBGLVL_EXTRA enabled.
Partially fix by removing this unnecessary constraint. (Note that it
is still necessary for at least one debug level to be compiled in for
the object invoking DBG_ENABLE()/DBG_DISABLE().)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
int __debug_disable;
#define DBGLVL ( DBGLVL_MAX & ~__debug_disable )
#define DBG_DISABLE( level ) do { \
- __debug_disable |= ( (level) & DBGLVL_MAX ); \
+ __debug_disable |= (level); \
} while ( 0 )
#define DBG_ENABLE( level ) do { \
- __debug_disable &= ~( (level) & DBGLVL_MAX ); \
+ __debug_disable &= ~(level); \
} while ( 0 )
#else
#define DBGLVL 0