Home | History | Annotate | Download | only in fio
      1 #ifndef FIO_DEBUG_H
      2 #define FIO_DEBUG_H
      3 
      4 #include <assert.h>
      5 #include "log.h"
      6 
      7 enum {
      8 	FD_PROCESS	= 0,
      9 	FD_FILE,
     10 	FD_IO,
     11 	FD_MEM,
     12 	FD_BLKTRACE,
     13 	FD_VERIFY,
     14 	FD_RANDOM,
     15 	FD_PARSE,
     16 	FD_DISKUTIL,
     17 	FD_JOB,
     18 	FD_MUTEX,
     19 	FD_PROFILE,
     20 	FD_TIME,
     21 	FD_NET,
     22 	FD_RATE,
     23 	FD_DEBUG_MAX,
     24 };
     25 
     26 extern unsigned int fio_debug_jobno, *fio_debug_jobp;
     27 
     28 #ifdef FIO_INC_DEBUG
     29 struct debug_level {
     30 	const char *name;
     31 	const char *help;
     32 	unsigned long shift;
     33 	unsigned int jobno;
     34 };
     35 extern struct debug_level debug_levels[];
     36 
     37 extern unsigned long fio_debug;
     38 
     39 void __dprint(int type, const char *str, ...) __attribute__((format (printf, 2, 3)));
     40 
     41 #define dprint(type, str, args...)			\
     42 	do {						\
     43 		if ((((1 << type)) & fio_debug) == 0)	\
     44 			break;				\
     45 		__dprint((type), (str), ##args);	\
     46 	} while (0)					\
     47 
     48 #else
     49 
     50 static inline void dprint(int type, const char *str, ...)
     51 {
     52 }
     53 #endif
     54 
     55 #endif
     56