summaryrefslogtreecommitdiff
path: root/debug.h
diff options
context:
space:
mode:
Diffstat (limited to 'debug.h')
-rw-r--r--debug.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/debug.h b/debug.h
new file mode 100644
index 00000000..b11a9012
--- /dev/null
+++ b/debug.h
@@ -0,0 +1,42 @@
+#ifndef FIO_DEBUG_H
+#define FIO_DEBUG_H
+
+#include <assert.h>
+#include "log.h"
+
+enum {
+ FD_PROCESS = 0,
+ FD_FILE,
+ FD_IO,
+ FD_MEM,
+ FD_BLKTRACE,
+ FD_VERIFY,
+ FD_RANDOM,
+ FD_PARSE,
+ FD_DEBUG_MAX,
+};
+
+#ifdef FIO_INC_DEBUG
+struct debug_level {
+ const char *name;
+ unsigned long shift;
+};
+extern struct debug_level debug_levels[];
+
+extern unsigned long fio_debug;
+
+#define dprint(type, str, args...) \
+ do { \
+ assert(type < FD_DEBUG_MAX); \
+ if ((((1 << type)) & fio_debug) == 0) \
+ break; \
+ log_info("%-8s ", debug_levels[(type)].name); \
+ log_info(str, ##args); \
+ } while (0)
+
+#else
+
+#define dprint(type, str, args...)
+#endif
+
+#endif