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