1 #ifndef _DEBUG_H_
2 #define _DEBUG_H_
3 
4 
5 #ifdef	DBG_THREADS
6 #define debug_init()	debug_init_threads()
7 #else
8 #define	debug_init()	debug_init_nothreads()
9 #endif
10 
11 
12 void
13 debug_init_threads();
14 
15 void
16 debug_init_nothreads();
17 
18 
19 void
20 fn_begin(char *format, ...);
21 
22 void
23 fn_end();
24 
25 
26 #ifdef FNCALL_DEBUG
27 /* define macros with debugging on */
28 
29 #define begin_func(_format, _args...)	fn_begin(_format , ##_args)
30 
31 #define	return_val(_value) \
32 	do { \
33 		fn_end(); \
34 		return _value; \
35 	} while (0)
36 
37 #define	return_void() \
38 	do { \
39 		fn_end(); \
40 		return; \
41 	} while (0)
42 
43 #else
44 /* define macros with debugging off */
45 
46 #define begin_func(_format)
47 
48 #define	return_val(_value)		return _value
49 
50 #define	return_void()			return
51 
52 #endif
53 
54 
55 #endif
56