stat: fix accumulation of latency buckets
[fio.git] / optgroup.h
CommitLineData
d220c761
JA
1#ifndef FIO_OPT_GROUP_H
2#define FIO_OPT_GROUP_H
3
4struct opt_group {
5 const char *name;
6 uint64_t mask;
7};
8
9enum 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
29enum 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,
52b81b7c 58 __FIO_OPT_G_RBD,
c2f6a13d 59 __FIO_OPT_G_HTTP,
52b81b7c
KD
60 __FIO_OPT_G_GFAPI,
61 __FIO_OPT_G_MTD,
d220c761 62 __FIO_OPT_G_HDFS,
52b81b7c 63 __FIO_OPT_G_SG,
d220c761
JA
64 __FIO_OPT_G_NR,
65
66 FIO_OPT_G_RATE = (1ULL << __FIO_OPT_G_RATE),
67 FIO_OPT_G_ZONE = (1ULL << __FIO_OPT_G_ZONE),
68 FIO_OPT_G_RWMIX = (1ULL << __FIO_OPT_G_RWMIX),
69 FIO_OPT_G_VERIFY = (1ULL << __FIO_OPT_G_VERIFY),
70 FIO_OPT_G_TRIM = (1ULL << __FIO_OPT_G_TRIM),
71 FIO_OPT_G_IOLOG = (1ULL << __FIO_OPT_G_IOLOG),
72 FIO_OPT_G_IO_DEPTH = (1ULL << __FIO_OPT_G_IO_DEPTH),
73 FIO_OPT_G_IO_FLOW = (1ULL << __FIO_OPT_G_IO_FLOW),
74 FIO_OPT_G_DESC = (1ULL << __FIO_OPT_G_DESC),
75 FIO_OPT_G_FILENAME = (1ULL << __FIO_OPT_G_FILENAME),
76 FIO_OPT_G_IO_BASIC = (1ULL << __FIO_OPT_G_IO_BASIC),
77 FIO_OPT_G_CGROUP = (1ULL << __FIO_OPT_G_CGROUP),
78 FIO_OPT_G_RUNTIME = (1ULL << __FIO_OPT_G_RUNTIME),
79 FIO_OPT_G_PROCESS = (1ULL << __FIO_OPT_G_PROCESS),
80 FIO_OPT_G_CRED = (1ULL << __FIO_OPT_G_CRED),
81 FIO_OPT_G_CLOCK = (1ULL << __FIO_OPT_G_CLOCK),
82 FIO_OPT_G_IO_TYPE = (1ULL << __FIO_OPT_G_IO_TYPE),
83 FIO_OPT_G_THINKTIME = (1ULL << __FIO_OPT_G_THINKTIME),
84 FIO_OPT_G_RANDOM = (1ULL << __FIO_OPT_G_RANDOM),
85 FIO_OPT_G_IO_BUF = (1ULL << __FIO_OPT_G_IO_BUF),
86 FIO_OPT_G_TIOBENCH = (1ULL << __FIO_OPT_G_TIOBENCH),
87 FIO_OPT_G_ERR = (1ULL << __FIO_OPT_G_ERR),
88 FIO_OPT_G_E4DEFRAG = (1ULL << __FIO_OPT_G_E4DEFRAG),
89 FIO_OPT_G_NETIO = (1ULL << __FIO_OPT_G_NETIO),
90 FIO_OPT_G_RDMA = (1ULL << __FIO_OPT_G_RDMA),
91 FIO_OPT_G_LIBAIO = (1ULL << __FIO_OPT_G_LIBAIO),
92 FIO_OPT_G_ACT = (1ULL << __FIO_OPT_G_ACT),
93 FIO_OPT_G_LATPROF = (1ULL << __FIO_OPT_G_LATPROF),
94 FIO_OPT_G_RBD = (1ULL << __FIO_OPT_G_RBD),
c2f6a13d 95 FIO_OPT_G_HTTP = (1ULL << __FIO_OPT_G_HTTP),
d220c761
JA
96 FIO_OPT_G_GFAPI = (1ULL << __FIO_OPT_G_GFAPI),
97 FIO_OPT_G_MTD = (1ULL << __FIO_OPT_G_MTD),
98 FIO_OPT_G_HDFS = (1ULL << __FIO_OPT_G_HDFS),
52b81b7c 99 FIO_OPT_G_SG = (1ULL << __FIO_OPT_G_SG),
d220c761
JA
100 FIO_OPT_G_INVALID = (1ULL << __FIO_OPT_G_NR),
101};
102
103extern const struct opt_group *opt_group_from_mask(uint64_t *mask);
104extern const struct opt_group *opt_group_cat_from_mask(uint64_t *mask);
105
106#endif