fio: fix aio trim completion latencies
[fio.git] / optgroup.h
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_NR,
67
68         FIO_OPT_G_RATE          = (1ULL << __FIO_OPT_G_RATE),
69         FIO_OPT_G_ZONE          = (1ULL << __FIO_OPT_G_ZONE),
70         FIO_OPT_G_RWMIX         = (1ULL << __FIO_OPT_G_RWMIX),
71         FIO_OPT_G_VERIFY        = (1ULL << __FIO_OPT_G_VERIFY),
72         FIO_OPT_G_TRIM          = (1ULL << __FIO_OPT_G_TRIM),
73         FIO_OPT_G_IOLOG         = (1ULL << __FIO_OPT_G_IOLOG),
74         FIO_OPT_G_IO_DEPTH      = (1ULL << __FIO_OPT_G_IO_DEPTH),
75         FIO_OPT_G_IO_FLOW       = (1ULL << __FIO_OPT_G_IO_FLOW),
76         FIO_OPT_G_DESC          = (1ULL << __FIO_OPT_G_DESC),
77         FIO_OPT_G_FILENAME      = (1ULL << __FIO_OPT_G_FILENAME),
78         FIO_OPT_G_IO_BASIC      = (1ULL << __FIO_OPT_G_IO_BASIC),
79         FIO_OPT_G_CGROUP        = (1ULL << __FIO_OPT_G_CGROUP),
80         FIO_OPT_G_RUNTIME       = (1ULL << __FIO_OPT_G_RUNTIME),
81         FIO_OPT_G_PROCESS       = (1ULL << __FIO_OPT_G_PROCESS),
82         FIO_OPT_G_CRED          = (1ULL << __FIO_OPT_G_CRED),
83         FIO_OPT_G_CLOCK         = (1ULL << __FIO_OPT_G_CLOCK),
84         FIO_OPT_G_IO_TYPE       = (1ULL << __FIO_OPT_G_IO_TYPE),
85         FIO_OPT_G_THINKTIME     = (1ULL << __FIO_OPT_G_THINKTIME),
86         FIO_OPT_G_RANDOM        = (1ULL << __FIO_OPT_G_RANDOM),
87         FIO_OPT_G_IO_BUF        = (1ULL << __FIO_OPT_G_IO_BUF),
88         FIO_OPT_G_TIOBENCH      = (1ULL << __FIO_OPT_G_TIOBENCH),
89         FIO_OPT_G_ERR           = (1ULL << __FIO_OPT_G_ERR),
90         FIO_OPT_G_E4DEFRAG      = (1ULL << __FIO_OPT_G_E4DEFRAG),
91         FIO_OPT_G_NETIO         = (1ULL << __FIO_OPT_G_NETIO),
92         FIO_OPT_G_RDMA          = (1ULL << __FIO_OPT_G_RDMA),
93         FIO_OPT_G_LIBAIO        = (1ULL << __FIO_OPT_G_LIBAIO),
94         FIO_OPT_G_ACT           = (1ULL << __FIO_OPT_G_ACT),
95         FIO_OPT_G_LATPROF       = (1ULL << __FIO_OPT_G_LATPROF),
96         FIO_OPT_G_RBD           = (1ULL << __FIO_OPT_G_RBD),
97         FIO_OPT_G_HTTP          = (1ULL << __FIO_OPT_G_HTTP),
98         FIO_OPT_G_GFAPI         = (1ULL << __FIO_OPT_G_GFAPI),
99         FIO_OPT_G_MTD           = (1ULL << __FIO_OPT_G_MTD),
100         FIO_OPT_G_HDFS          = (1ULL << __FIO_OPT_G_HDFS),
101         FIO_OPT_G_SG            = (1ULL << __FIO_OPT_G_SG),
102         FIO_OPT_G_MMAP          = (1ULL << __FIO_OPT_G_MMAP),
103         FIO_OPT_G_INVALID       = (1ULL << __FIO_OPT_G_NR),
104         FIO_OPT_G_ISCSI         = (1ULL << __FIO_OPT_G_ISCSI),
105 };
106
107 extern const struct opt_group *opt_group_from_mask(uint64_t *mask);
108 extern const struct opt_group *opt_group_cat_from_mask(uint64_t *mask);
109
110 #endif