Add --debug=parse for option parsing debug
Adds log.h and debug.h to split the logging and debug bits out of
fio, so that the parser can use them.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/debug.h b/debug.h
new file mode 100644
index 0000000..b11a901
--- /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