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