tools: Adding fiograph
[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_LIBRPMA,
56         __FIO_OPT_G_LIBAIO,
57         __FIO_OPT_G_ACT,
58         __FIO_OPT_G_LATPROF,
59         __FIO_OPT_G_RBD,
60         __FIO_OPT_G_HTTP,
61         __FIO_OPT_G_GFAPI,
62         __FIO_OPT_G_MTD,
63         __FIO_OPT_G_HDFS,
64         __FIO_OPT_G_SG,
65         __FIO_OPT_G_MMAP,
66         __FIO_OPT_G_ISCSI,
67         __FIO_OPT_G_NBD,
68         __FIO_OPT_G_IOURING,
69         __FIO_OPT_G_FILESTAT,
70         __FIO_OPT_G_NR,
71         __FIO_OPT_G_LIBCUFILE,
72         __FIO_OPT_G_DFS,
73         __FIO_OPT_G_NFS,
74
75         FIO_OPT_G_RATE          = (1ULL << __FIO_OPT_G_RATE),
76         FIO_OPT_G_ZONE          = (1ULL << __FIO_OPT_G_ZONE),
77         FIO_OPT_G_RWMIX         = (1ULL << __FIO_OPT_G_RWMIX),
78         FIO_OPT_G_VERIFY        = (1ULL << __FIO_OPT_G_VERIFY),
79         FIO_OPT_G_TRIM          = (1ULL << __FIO_OPT_G_TRIM),
80         FIO_OPT_G_IOLOG         = (1ULL << __FIO_OPT_G_IOLOG),
81         FIO_OPT_G_IO_DEPTH      = (1ULL << __FIO_OPT_G_IO_DEPTH),
82         FIO_OPT_G_IO_FLOW       = (1ULL << __FIO_OPT_G_IO_FLOW),
83         FIO_OPT_G_DESC          = (1ULL << __FIO_OPT_G_DESC),
84         FIO_OPT_G_FILENAME      = (1ULL << __FIO_OPT_G_FILENAME),
85         FIO_OPT_G_IO_BASIC      = (1ULL << __FIO_OPT_G_IO_BASIC),
86         FIO_OPT_G_CGROUP        = (1ULL << __FIO_OPT_G_CGROUP),
87         FIO_OPT_G_RUNTIME       = (1ULL << __FIO_OPT_G_RUNTIME),
88         FIO_OPT_G_PROCESS       = (1ULL << __FIO_OPT_G_PROCESS),
89         FIO_OPT_G_CRED          = (1ULL << __FIO_OPT_G_CRED),
90         FIO_OPT_G_CLOCK         = (1ULL << __FIO_OPT_G_CLOCK),
91         FIO_OPT_G_IO_TYPE       = (1ULL << __FIO_OPT_G_IO_TYPE),
92         FIO_OPT_G_THINKTIME     = (1ULL << __FIO_OPT_G_THINKTIME),
93         FIO_OPT_G_RANDOM        = (1ULL << __FIO_OPT_G_RANDOM),
94         FIO_OPT_G_IO_BUF        = (1ULL << __FIO_OPT_G_IO_BUF),
95         FIO_OPT_G_TIOBENCH      = (1ULL << __FIO_OPT_G_TIOBENCH),
96         FIO_OPT_G_ERR           = (1ULL << __FIO_OPT_G_ERR),
97         FIO_OPT_G_E4DEFRAG      = (1ULL << __FIO_OPT_G_E4DEFRAG),
98         FIO_OPT_G_NETIO         = (1ULL << __FIO_OPT_G_NETIO),
99         FIO_OPT_G_RDMA          = (1ULL << __FIO_OPT_G_RDMA),
100         FIO_OPT_G_LIBRPMA       = (1ULL << __FIO_OPT_G_LIBRPMA),
101         FIO_OPT_G_LIBAIO        = (1ULL << __FIO_OPT_G_LIBAIO),
102         FIO_OPT_G_ACT           = (1ULL << __FIO_OPT_G_ACT),
103         FIO_OPT_G_LATPROF       = (1ULL << __FIO_OPT_G_LATPROF),
104         FIO_OPT_G_RBD           = (1ULL << __FIO_OPT_G_RBD),
105         FIO_OPT_G_HTTP          = (1ULL << __FIO_OPT_G_HTTP),
106         FIO_OPT_G_GFAPI         = (1ULL << __FIO_OPT_G_GFAPI),
107         FIO_OPT_G_MTD           = (1ULL << __FIO_OPT_G_MTD),
108         FIO_OPT_G_HDFS          = (1ULL << __FIO_OPT_G_HDFS),
109         FIO_OPT_G_SG            = (1ULL << __FIO_OPT_G_SG),
110         FIO_OPT_G_MMAP          = (1ULL << __FIO_OPT_G_MMAP),
111         FIO_OPT_G_INVALID       = (1ULL << __FIO_OPT_G_NR),
112         FIO_OPT_G_ISCSI         = (1ULL << __FIO_OPT_G_ISCSI),
113         FIO_OPT_G_NBD           = (1ULL << __FIO_OPT_G_NBD),
114         FIO_OPT_G_NFS           = (1ULL << __FIO_OPT_G_NFS),
115         FIO_OPT_G_IOURING       = (1ULL << __FIO_OPT_G_IOURING),
116         FIO_OPT_G_FILESTAT      = (1ULL << __FIO_OPT_G_FILESTAT),
117         FIO_OPT_G_LIBCUFILE     = (1ULL << __FIO_OPT_G_LIBCUFILE),
118         FIO_OPT_G_DFS           = (1ULL << __FIO_OPT_G_DFS),
119 };
120
121 extern const struct opt_group *opt_group_from_mask(uint64_t *mask);
122 extern const struct opt_group *opt_group_cat_from_mask(uint64_t *mask);
123
124 #endif