X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=options.h;h=e830884660266cf3fb2471ace132bb20bd9c9e1b;hp=330cc87665215769180941d773800496d19a4cff;hb=2243dfc796a8a6e137893a57a77949df7657dd71;hpb=22f80458a520d0c5371c64bf91d24cdd21dff825 diff --git a/options.h b/options.h index 330cc876..e8308846 100644 --- a/options.h +++ b/options.h @@ -17,9 +17,25 @@ void add_opt_posval(const char *, const char *, const char *); void del_opt_posval(const char *, const char *); struct thread_data; void fio_options_free(struct thread_data *); +char *get_name_idx(char *, int); +int set_name_idx(char *, char *, int); 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) \ +({ \ + int __r = __fio_option_is_set((__td), td_var_offset(name)); \ + if (__r == -1) { \ + log_err("fio: wanted %s\n", __fio_stringify(name)); \ + __r = 0; \ + } \ + __r; \ +}) + +extern void fio_option_mark_set(struct thread_options *, struct fio_option *); + static inline int o_match(struct fio_option *o, const char *opt) { if (!strcmp(o->name, opt)) @@ -54,6 +70,7 @@ enum opt_category { __FIO_OPT_C_STAT, __FIO_OPT_C_LOG, __FIO_OPT_C_PROFILE, + __FIO_OPT_C_ENGINE, __FIO_OPT_C_NR, FIO_OPT_C_GENERAL = (1U << __FIO_OPT_C_GENERAL), @@ -62,6 +79,7 @@ enum opt_category { FIO_OPT_C_STAT = (1U << __FIO_OPT_C_STAT), FIO_OPT_C_LOG = (1U << __FIO_OPT_C_LOG), FIO_OPT_C_PROFILE = (1U << __FIO_OPT_C_PROFILE), + FIO_OPT_C_ENGINE = (1U << __FIO_OPT_C_ENGINE), FIO_OPT_C_INVALID = (1U << __FIO_OPT_C_NR), }; @@ -88,6 +106,13 @@ enum opt_category_group { __FIO_OPT_G_IO_BUF, __FIO_OPT_G_TIOBENCH, __FIO_OPT_G_ERR, + __FIO_OPT_G_E4DEFRAG, + __FIO_OPT_G_NETIO, + __FIO_OPT_G_LIBAIO, + __FIO_OPT_G_ACT, + __FIO_OPT_G_LATPROF, + __FIO_OPT_G_RBD, + __FIO_OPT_G_GFAPI, __FIO_OPT_G_NR, FIO_OPT_G_RATE = (1U << __FIO_OPT_G_RATE), @@ -112,6 +137,13 @@ enum opt_category_group { FIO_OPT_G_IO_BUF = (1U << __FIO_OPT_G_IO_BUF), FIO_OPT_G_TIOBENCH = (1U << __FIO_OPT_G_TIOBENCH), FIO_OPT_G_ERR = (1U << __FIO_OPT_G_ERR), + FIO_OPT_G_E4DEFRAG = (1U << __FIO_OPT_G_E4DEFRAG), + FIO_OPT_G_NETIO = (1U << __FIO_OPT_G_NETIO), + FIO_OPT_G_LIBAIO = (1U << __FIO_OPT_G_LIBAIO), + FIO_OPT_G_ACT = (1U << __FIO_OPT_G_ACT), + 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_INVALID = (1U << __FIO_OPT_G_NR), };