parse: get rid of raw option offsets
[fio.git] / profiles / tiobench.c
index 0d2ce8065e261b276bf40f6a8a753c343225dbc2..99c88c4507006176707804fc133aa8d45080169d 100644 (file)
@@ -14,18 +14,30 @@ static const char *tb_opts[] = {
        "buffered=0", sz_idx, bs_idx, loop_idx, dir_idx, t_idx,
        "timeout=600", "group_reporting", "thread", "overwrite=1",
        "filename=.fio.tio.1:.fio.tio.2:.fio.tio.3:.fio.tio.4",
+       "ioengine=sync",
        "name=seqwrite", "rw=write", "end_fsync=1",
        "name=randwrite", "stonewall", "rw=randwrite", "end_fsync=1",
        "name=seqread", "stonewall", "rw=read",
        "name=randread", "stonewall", "rw=randread", NULL,
 };
 
+struct tiobench_options {
+       unsigned int pad;
+       unsigned long long size;
+       unsigned int loops;
+       unsigned int bs;
+       unsigned int nthreads;
+       char *dir;
+};
+
+static struct tiobench_options tiobench_options;
+
 static struct fio_option options[] = {
        {
                .name   = "size",
                .lname  = "Tiobench size",
                .type   = FIO_OPT_STR_VAL,
-               .roff1  = &size,
+               .off1   = offsetof(struct tiobench_options, size),
                .help   = "Size in MB",
                .category = FIO_OPT_C_PROFILE,
                .group  = FIO_OPT_G_TIOBENCH,
@@ -34,7 +46,7 @@ static struct fio_option options[] = {
                .name   = "block",
                .lname  = "Tiobench block",
                .type   = FIO_OPT_INT,
-               .roff1  = &bs,
+               .off1   = offsetof(struct tiobench_options, bs),
                .help   = "Block size in bytes",
                .def    = "4k",
                .category = FIO_OPT_C_PROFILE,
@@ -44,7 +56,7 @@ static struct fio_option options[] = {
                .name   = "numruns",
                .lname  = "Tiobench numruns",
                .type   = FIO_OPT_INT,
-               .roff1  = &loops,
+               .off1   = offsetof(struct tiobench_options, loops),
                .help   = "Number of runs",
                .category = FIO_OPT_C_PROFILE,
                .group  = FIO_OPT_G_TIOBENCH,
@@ -53,7 +65,7 @@ static struct fio_option options[] = {
                .name   = "dir",
                .lname  = "Tiobench directory",
                .type   = FIO_OPT_STR_STORE,
-               .roff1  = &dir,
+               .off1   = offsetof(struct tiobench_options, dir),
                .help   = "Test directory",
                .category = FIO_OPT_C_PROFILE,
                .group  = FIO_OPT_G_TIOBENCH,
@@ -62,7 +74,7 @@ static struct fio_option options[] = {
                .name   = "threads",
                .lname  = "Tiobench threads",
                .type   = FIO_OPT_INT,
-               .roff1  = &nthreads,
+               .off1   = offsetof(struct tiobench_options, nthreads),
                .help   = "Number of Threads",
                .category = FIO_OPT_C_PROFILE,
                .group  = FIO_OPT_G_TIOBENCH,
@@ -104,6 +116,8 @@ static struct profile_ops tiobench_profile = {
        .options        = options,
        .prep_cmd       = tb_prep_cmdline,
        .cmdline        = tb_opts,
+       .options        = options,
+       .opt_data       = &tiobench_options,
 };
 
 static void fio_init tiobench_register(void)