blktrace: add support for scaling and aligning replays
[fio.git] / options.h
index fa015c393ea24bb9ff2be3361b7ba91ac50d16a3..2cf435a06e2868ab8ba84bee60bd9a53116bf7a7 100644 (file)
--- a/options.h
+++ b/options.h
@@ -24,8 +24,17 @@ extern struct fio_option fio_options[FIO_MAX_OPTS];
 
 extern int __fio_option_is_set(struct thread_options *, unsigned int off);
 
-#define fio_option_is_set(__td, name)  \
-       __fio_option_is_set((__td), td_var_offset(name))
+#define fio_option_is_set(__td, name)                                  \
+({                                                                     \
+       const unsigned int off = td_var_offset(name);                   \
+       int __r = __fio_option_is_set((__td), off);                     \
+       if (__r == -1) {                                                \
+               dprint(FD_PARSE, "option %s/%u not found in map\n",     \
+                               __fio_stringify(name), off);            \
+               __r = 0;                                                \
+       }                                                               \
+       __r;                                                            \
+})
 
 extern void fio_option_mark_set(struct thread_options *, struct fio_option *);
 
@@ -106,6 +115,7 @@ enum opt_category_group {
        __FIO_OPT_G_LATPROF,
         __FIO_OPT_G_RBD,
         __FIO_OPT_G_GFAPI,
+        __FIO_OPT_G_MTD,
        __FIO_OPT_G_NR,
 
        FIO_OPT_G_RATE          = (1U << __FIO_OPT_G_RATE),
@@ -137,6 +147,7 @@ enum opt_category_group {
        FIO_OPT_G_LATPROF       = (1U << __FIO_OPT_G_LATPROF),
        FIO_OPT_G_RBD           = (1U << __FIO_OPT_G_RBD),
        FIO_OPT_G_GFAPI         = (1U << __FIO_OPT_G_GFAPI),
+       FIO_OPT_G_MTD           = (1U << __FIO_OPT_G_MTD),
        FIO_OPT_G_INVALID       = (1U << __FIO_OPT_G_NR),
 };