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