summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/compiler.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/include/compiler.h b/src/include/compiler.h
index 32afb64cf..eae62c518 100644
--- a/src/include/compiler.h
+++ b/src/include/compiler.h
@@ -285,14 +285,23 @@ extern void dbg_pause ( void );
extern void dbg_more ( void );
/* Allow for selective disabling of enabled debug levels */
+#define __debug_disable( object ) _C2 ( __debug_disable_, object )
+char __debug_disable(OBJECT);
+#define DBG_DISABLE_OBJECT( object, level ) do { \
+ extern char __debug_disable(object); \
+ __debug_disable(object) |= (level); \
+ } while ( 0 )
+#define DBG_ENABLE_OBJECT( object, level ) do { \
+ extern char __debug_disable(object); \
+ __debug_disable(object) &= ~(level); \
+ } while ( 0 )
#if DBGLVL_MAX
-int __debug_disable;
-#define DBGLVL ( DBGLVL_MAX & ~__debug_disable )
+#define DBGLVL ( DBGLVL_MAX & ~__debug_disable(OBJECT) )
#define DBG_DISABLE( level ) do { \
- __debug_disable |= (level); \
+ __debug_disable(OBJECT) |= ( (level) & DBGLVL_MAX ); \
} while ( 0 )
#define DBG_ENABLE( level ) do { \
- __debug_disable &= ~(level); \
+ __debug_disable(OBJECT) &= ~( (level) & DBGLVL_MAX ); \
} while ( 0 )
#else
#define DBGLVL 0