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