Add --section command line option
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index b21ec18d787821dbefb4c2b9987b1de9bf236c93..6dbc4cd59c31a4cdf8c54e4e9c7d9110deaf32a5 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -667,6 +667,7 @@ extern unsigned long long mlock_size;
 extern unsigned long page_mask, page_size;
 extern int read_only;
 extern int eta_print;
+extern char *job_section;
 
 extern struct thread_data *threads;
 
@@ -973,18 +974,31 @@ static inline void clear_error(struct thread_data *td)
 }
 
 enum {
-       FD_PROCESS      = 1 << 0,
-       FD_FILE         = 1 << 1,
-       FD_IO           = 1 << 2,
-       FD_MEM          = 1 << 3,
+       FD_PROCESS      = 0,
+       FD_FILE,
+       FD_IO,
+       FD_MEM,
+       FD_BLKTRACE,
+       FD_VERIFY,
+       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 {                                    \
-               if (((type) & fio_debug) == 0)  \
-                       break;                  \
-               log_info(str, ##args);          \
+
+#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)
 
 static inline void dprint_io_u(struct io_u *io_u, const char *p)
@@ -993,9 +1007,16 @@ static inline void dprint_io_u(struct io_u *io_u, const char *p)
 
        dprint(FD_IO, "%s: io_u %p: off=%llu/len=%lu/ddir=%d", p, io_u,
                                        io_u->offset, io_u->buflen, io_u->ddir);
-       if (f)
-               dprint(FD_IO, "/%s", f->file_name);
-       dprint(FD_IO, "\n");
+       if (fio_debug & (1 << FD_IO)) {
+               if (f)
+                       log_info("/%s", f->file_name);
+
+               log_info("\n");
+       }
 }
+#else
+#define dprint(type, str, args...)
+#define dprint_io_u(io_u, p)
+#endif
 
 #endif