| 1 | #ifndef FIO_OPT_GROUP_H |
| 2 | #define FIO_OPT_GROUP_H |
| 3 | |
| 4 | struct opt_group { |
| 5 | const char *name; |
| 6 | uint64_t mask; |
| 7 | }; |
| 8 | |
| 9 | enum opt_category { |
| 10 | __FIO_OPT_C_GENERAL = 0, |
| 11 | __FIO_OPT_C_IO, |
| 12 | __FIO_OPT_C_FILE, |
| 13 | __FIO_OPT_C_STAT, |
| 14 | __FIO_OPT_C_LOG, |
| 15 | __FIO_OPT_C_PROFILE, |
| 16 | __FIO_OPT_C_ENGINE, |
| 17 | __FIO_OPT_C_NR, |
| 18 | |
| 19 | FIO_OPT_C_GENERAL = (1ULL << __FIO_OPT_C_GENERAL), |
| 20 | FIO_OPT_C_IO = (1ULL << __FIO_OPT_C_IO), |
| 21 | FIO_OPT_C_FILE = (1ULL << __FIO_OPT_C_FILE), |
| 22 | FIO_OPT_C_STAT = (1ULL << __FIO_OPT_C_STAT), |
| 23 | FIO_OPT_C_LOG = (1ULL << __FIO_OPT_C_LOG), |
| 24 | FIO_OPT_C_PROFILE = (1ULL << __FIO_OPT_C_PROFILE), |
| 25 | FIO_OPT_C_ENGINE = (1ULL << __FIO_OPT_C_ENGINE), |
| 26 | FIO_OPT_C_INVALID = (1ULL << __FIO_OPT_C_NR), |
| 27 | }; |
| 28 | |
| 29 | enum opt_category_group { |
| 30 | __FIO_OPT_G_RATE = 0, |
| 31 | __FIO_OPT_G_ZONE, |
| 32 | __FIO_OPT_G_RWMIX, |
| 33 | __FIO_OPT_G_VERIFY, |
| 34 | __FIO_OPT_G_TRIM, |
| 35 | __FIO_OPT_G_IOLOG, |
| 36 | __FIO_OPT_G_IO_DEPTH, |
| 37 | __FIO_OPT_G_IO_FLOW, |
| 38 | __FIO_OPT_G_DESC, |
| 39 | __FIO_OPT_G_FILENAME, |
| 40 | __FIO_OPT_G_IO_BASIC, |
| 41 | __FIO_OPT_G_CGROUP, |
| 42 | __FIO_OPT_G_RUNTIME, |
| 43 | __FIO_OPT_G_PROCESS, |
| 44 | __FIO_OPT_G_CRED, |
| 45 | __FIO_OPT_G_CLOCK, |
| 46 | __FIO_OPT_G_IO_TYPE, |
| 47 | __FIO_OPT_G_THINKTIME, |
| 48 | __FIO_OPT_G_RANDOM, |
| 49 | __FIO_OPT_G_IO_BUF, |
| 50 | __FIO_OPT_G_TIOBENCH, |
| 51 | __FIO_OPT_G_ERR, |
| 52 | __FIO_OPT_G_E4DEFRAG, |
| 53 | __FIO_OPT_G_NETIO, |
| 54 | __FIO_OPT_G_RDMA, |
| 55 | __FIO_OPT_G_LIBAIO, |
| 56 | __FIO_OPT_G_ACT, |
| 57 | __FIO_OPT_G_LATPROF, |
| 58 | __FIO_OPT_G_RBD, |
| 59 | __FIO_OPT_G_HTTP, |
| 60 | __FIO_OPT_G_GFAPI, |
| 61 | __FIO_OPT_G_MTD, |
| 62 | __FIO_OPT_G_HDFS, |
| 63 | __FIO_OPT_G_SG, |
| 64 | __FIO_OPT_G_MMAP, |
| 65 | __FIO_OPT_G_ISCSI, |
| 66 | __FIO_OPT_G_NBD, |
| 67 | __FIO_OPT_G_IOURING, |
| 68 | __FIO_OPT_G_FILESTAT, |
| 69 | __FIO_OPT_G_NR, |
| 70 | |
| 71 | FIO_OPT_G_RATE = (1ULL << __FIO_OPT_G_RATE), |
| 72 | FIO_OPT_G_ZONE = (1ULL << __FIO_OPT_G_ZONE), |
| 73 | FIO_OPT_G_RWMIX = (1ULL << __FIO_OPT_G_RWMIX), |
| 74 | FIO_OPT_G_VERIFY = (1ULL << __FIO_OPT_G_VERIFY), |
| 75 | FIO_OPT_G_TRIM = (1ULL << __FIO_OPT_G_TRIM), |
| 76 | FIO_OPT_G_IOLOG = (1ULL << __FIO_OPT_G_IOLOG), |
| 77 | FIO_OPT_G_IO_DEPTH = (1ULL << __FIO_OPT_G_IO_DEPTH), |
| 78 | FIO_OPT_G_IO_FLOW = (1ULL << __FIO_OPT_G_IO_FLOW), |
| 79 | FIO_OPT_G_DESC = (1ULL << __FIO_OPT_G_DESC), |
| 80 | FIO_OPT_G_FILENAME = (1ULL << __FIO_OPT_G_FILENAME), |
| 81 | FIO_OPT_G_IO_BASIC = (1ULL << __FIO_OPT_G_IO_BASIC), |
| 82 | FIO_OPT_G_CGROUP = (1ULL << __FIO_OPT_G_CGROUP), |
| 83 | FIO_OPT_G_RUNTIME = (1ULL << __FIO_OPT_G_RUNTIME), |
| 84 | FIO_OPT_G_PROCESS = (1ULL << __FIO_OPT_G_PROCESS), |
| 85 | FIO_OPT_G_CRED = (1ULL << __FIO_OPT_G_CRED), |
| 86 | FIO_OPT_G_CLOCK = (1ULL << __FIO_OPT_G_CLOCK), |
| 87 | FIO_OPT_G_IO_TYPE = (1ULL << __FIO_OPT_G_IO_TYPE), |
| 88 | FIO_OPT_G_THINKTIME = (1ULL << __FIO_OPT_G_THINKTIME), |
| 89 | FIO_OPT_G_RANDOM = (1ULL << __FIO_OPT_G_RANDOM), |
| 90 | FIO_OPT_G_IO_BUF = (1ULL << __FIO_OPT_G_IO_BUF), |
| 91 | FIO_OPT_G_TIOBENCH = (1ULL << __FIO_OPT_G_TIOBENCH), |
| 92 | FIO_OPT_G_ERR = (1ULL << __FIO_OPT_G_ERR), |
| 93 | FIO_OPT_G_E4DEFRAG = (1ULL << __FIO_OPT_G_E4DEFRAG), |
| 94 | FIO_OPT_G_NETIO = (1ULL << __FIO_OPT_G_NETIO), |
| 95 | FIO_OPT_G_RDMA = (1ULL << __FIO_OPT_G_RDMA), |
| 96 | FIO_OPT_G_LIBAIO = (1ULL << __FIO_OPT_G_LIBAIO), |
| 97 | FIO_OPT_G_ACT = (1ULL << __FIO_OPT_G_ACT), |
| 98 | FIO_OPT_G_LATPROF = (1ULL << __FIO_OPT_G_LATPROF), |
| 99 | FIO_OPT_G_RBD = (1ULL << __FIO_OPT_G_RBD), |
| 100 | FIO_OPT_G_HTTP = (1ULL << __FIO_OPT_G_HTTP), |
| 101 | FIO_OPT_G_GFAPI = (1ULL << __FIO_OPT_G_GFAPI), |
| 102 | FIO_OPT_G_MTD = (1ULL << __FIO_OPT_G_MTD), |
| 103 | FIO_OPT_G_HDFS = (1ULL << __FIO_OPT_G_HDFS), |
| 104 | FIO_OPT_G_SG = (1ULL << __FIO_OPT_G_SG), |
| 105 | FIO_OPT_G_MMAP = (1ULL << __FIO_OPT_G_MMAP), |
| 106 | FIO_OPT_G_INVALID = (1ULL << __FIO_OPT_G_NR), |
| 107 | FIO_OPT_G_ISCSI = (1ULL << __FIO_OPT_G_ISCSI), |
| 108 | FIO_OPT_G_NBD = (1ULL << __FIO_OPT_G_NBD), |
| 109 | FIO_OPT_G_IOURING = (1ULL << __FIO_OPT_G_IOURING), |
| 110 | FIO_OPT_G_FILESTAT = (1ULL << __FIO_OPT_G_FILESTAT), |
| 111 | }; |
| 112 | |
| 113 | extern const struct opt_group *opt_group_from_mask(uint64_t *mask); |
| 114 | extern const struct opt_group *opt_group_cat_from_mask(uint64_t *mask); |
| 115 | |
| 116 | #endif |