-struct opt_group {
- const char *name;
- unsigned int mask;
-};
-
-enum opt_category {
- __FIO_OPT_C_GENERAL = 0,
- __FIO_OPT_C_IO,
- __FIO_OPT_C_FILE,
- __FIO_OPT_C_STAT,
- __FIO_OPT_C_LOG,
- __FIO_OPT_C_NR,
-
- FIO_OPT_C_GENERAL = (1U << __FIO_OPT_C_GENERAL),
- FIO_OPT_C_IO = (1U << __FIO_OPT_C_IO),
- FIO_OPT_C_FILE = (1U << __FIO_OPT_C_FILE),
- FIO_OPT_C_STAT = (1U << __FIO_OPT_C_STAT),
- FIO_OPT_C_LOG = (1U << __FIO_OPT_C_LOG),
- FIO_OPT_C_INVALID = (1U << __FIO_OPT_C_NR),
-};
-
-enum opt_category_group {
- __FIO_OPT_G_RATE = 0,
- __FIO_OPT_G_ZONE,
- __FIO_OPT_G_RWMIX,
- __FIO_OPT_G_VERIFY,
- __FIO_OPT_G_TRIM,
- __FIO_OPT_G_IOLOG,
- __FIO_OPT_G_IO_DEPTH,
- __FIO_OPT_G_IO_FLOW,
- __FIO_OPT_G_DESC,
- __FIO_OPT_G_FILENAME,
- __FIO_OPT_G_IO_BASIC,
- __FIO_OPT_G_CGROUP,
- __FIO_OPT_G_RUNTIME,
- __FIO_OPT_G_NR,
-
- FIO_OPT_G_RATE = (1U << __FIO_OPT_G_RATE),
- FIO_OPT_G_ZONE = (1U << __FIO_OPT_G_ZONE),
- FIO_OPT_G_RWMIX = (1U << __FIO_OPT_G_RWMIX),
- FIO_OPT_G_VERIFY = (1U << __FIO_OPT_G_VERIFY),
- FIO_OPT_G_TRIM = (1U << __FIO_OPT_G_TRIM),
- FIO_OPT_G_IOLOG = (1U << __FIO_OPT_G_IOLOG),
- FIO_OPT_G_IO_DEPTH = (1U << __FIO_OPT_G_IO_DEPTH),
- FIO_OPT_G_IO_FLOW = (1U << __FIO_OPT_G_IO_FLOW),
- FIO_OPT_G_DESC = (1U << __FIO_OPT_G_DESC),
- FIO_OPT_G_FILENAME = (1U << __FIO_OPT_G_FILENAME),
- FIO_OPT_G_IO_BASIC = (1U << __FIO_OPT_G_IO_BASIC),
- FIO_OPT_G_CGROUP = (1U << __FIO_OPT_G_CGROUP),
- FIO_OPT_G_RUNTIME = (1U << __FIO_OPT_G_RUNTIME),
- FIO_OPT_G_INVALID = (1U << __FIO_OPT_G_NR),
-};
-
-extern struct opt_group *opt_group_from_mask(unsigned int *mask);
-extern struct opt_group *opt_group_cat_from_mask(unsigned int *mask);
+extern struct fio_option *find_option(struct fio_option *, const char *);
+extern const struct fio_option *
+find_option_c(const struct fio_option *, const char *);
+extern struct fio_option *fio_option_find(const char *);
+extern unsigned int fio_get_kb_base(void *);