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_COMPRESS,
     24 	FD_DEBUG_MAX,
     25 };
     26 
     27 extern unsigned int fio_debug_jobno, *fio_debug_jobp;
     28 
     29 #ifdef FIO_INC_DEBUG
     30 struct debug_level {
     31 	const char *name;
     32 	const char *help;
     33 	unsigned long shift;
     34 	unsigned int jobno;
     35 };
     36 extern struct debug_level debug_levels[];
     37 
     38 extern unsigned long fio_debug;
     39 
     40 void __dprint(int type, const char *str, ...) __attribute__((format (printf, 2, 3)));
     41 
     42 #define dprint(type, str, args...)			\
     43 	do {						\
     44 		if ((((1 << type)) & fio_debug) == 0)	\
     45 			break;				\
     46 		__dprint((type), (str), ##args);	\
     47 	} while (0)					\
     48 
     49 #else
     50 
     51 static inline void dprint(int type, const char *str, ...)
     52 {
     53 }
     54 #endif
     55 
     56 #endif
     57