|  | @@ -285,14 +285,23 @@ extern void dbg_pause ( void );
 | 
		
	
		
			
			| 285 | 285 |  extern void dbg_more ( void );
 | 
		
	
		
			
			| 286 | 286 |  
 | 
		
	
		
			
			| 287 | 287 |  /* Allow for selective disabling of enabled debug levels */
 | 
		
	
		
			
			|  | 288 | +#define __debug_disable( object ) _C2 ( __debug_disable_, object )
 | 
		
	
		
			
			|  | 289 | +char __debug_disable(OBJECT);
 | 
		
	
		
			
			|  | 290 | +#define DBG_DISABLE_OBJECT( object, level ) do {		\
 | 
		
	
		
			
			|  | 291 | +	extern char __debug_disable(object);			\
 | 
		
	
		
			
			|  | 292 | +	__debug_disable(object) |= (level);			\
 | 
		
	
		
			
			|  | 293 | +	} while ( 0 )
 | 
		
	
		
			
			|  | 294 | +#define DBG_ENABLE_OBJECT( object, level ) do {			\
 | 
		
	
		
			
			|  | 295 | +	extern char __debug_disable(object);			\
 | 
		
	
		
			
			|  | 296 | +	__debug_disable(object) &= ~(level);			\
 | 
		
	
		
			
			|  | 297 | +	} while ( 0 )
 | 
		
	
		
			
			| 288 | 298 |  #if DBGLVL_MAX
 | 
		
	
		
			
			| 289 |  | -int __debug_disable;
 | 
		
	
		
			
			| 290 |  | -#define DBGLVL ( DBGLVL_MAX & ~__debug_disable )
 | 
		
	
		
			
			|  | 299 | +#define DBGLVL ( DBGLVL_MAX & ~__debug_disable(OBJECT) )
 | 
		
	
		
			
			| 291 | 300 |  #define DBG_DISABLE( level ) do {				\
 | 
		
	
		
			
			| 292 |  | -	__debug_disable |= (level);				\
 | 
		
	
		
			
			|  | 301 | +	__debug_disable(OBJECT) |= ( (level) & DBGLVL_MAX );	\
 | 
		
	
		
			
			| 293 | 302 |  	} while ( 0 )
 | 
		
	
		
			
			| 294 | 303 |  #define DBG_ENABLE( level ) do {				\
 | 
		
	
		
			
			| 295 |  | -	__debug_disable &= ~(level);				\
 | 
		
	
		
			
			|  | 304 | +	__debug_disable(OBJECT) &= ~( (level) & DBGLVL_MAX );	\
 | 
		
	
		
			
			| 296 | 305 |  	} while ( 0 )
 | 
		
	
		
			
			| 297 | 306 |  #else
 | 
		
	
		
			
			| 298 | 307 |  #define DBGLVL 0
 |