Commit | Line | Data |
---|---|---|
9f988e2e JA |
1 | #ifndef FIO_OPTION_H |
2 | #define FIO_OPTION_H | |
3 | ||
07b3232d JA |
4 | #define FIO_MAX_OPTS 512 |
5 | ||
f5b6bb85 | 6 | #include <string.h> |
9f988e2e JA |
7 | #include "parse.h" |
8 | #include "flist.h" | |
9 | ||
10 | #define td_var_offset(var) ((size_t) &((struct thread_options *)0)->var) | |
11 | ||
07b3232d JA |
12 | int add_option(struct fio_option *); |
13 | void invalidate_profile_options(const char *); | |
14 | extern char *exec_profile; | |
9f988e2e | 15 | |
f5b6bb85 JA |
16 | void add_opt_posval(const char *, const char *, const char *); |
17 | void del_opt_posval(const char *, const char *); | |
7e356b2d JA |
18 | struct thread_data; |
19 | void fio_options_free(struct thread_data *); | |
f5b6bb85 JA |
20 | |
21 | static inline int o_match(struct fio_option *o, const char *opt) | |
22 | { | |
23 | if (!strcmp(o->name, opt)) | |
24 | return 1; | |
25 | else if (o->alias && !strcmp(o->alias, opt)) | |
26 | return 1; | |
27 | ||
28 | return 0; | |
29 | } | |
30 | ||
31 | static inline struct fio_option *find_option(struct fio_option *options, | |
32 | const char *opt) | |
33 | { | |
34 | struct fio_option *o; | |
35 | ||
36 | for (o = &options[0]; o->name; o++) | |
37 | if (o_match(o, opt)) | |
38 | return o; | |
39 | ||
40 | return NULL; | |
41 | } | |
42 | ||
81c6b6cd JA |
43 | struct opt_group { |
44 | const char *name; | |
45 | unsigned int mask; | |
46 | }; | |
47 | ||
48 | enum opt_category { | |
49 | __FIO_OPT_C_GENERAL = 0, | |
50 | __FIO_OPT_C_IO, | |
51 | __FIO_OPT_C_FILE, | |
52 | __FIO_OPT_C_STAT, | |
53 | __FIO_OPT_C_LOG, | |
54 | __FIO_OPT_C_PROFILE, | |
55 | __FIO_OPT_C_NR, | |
56 | ||
57 | FIO_OPT_C_GENERAL = (1U << __FIO_OPT_C_GENERAL), | |
58 | FIO_OPT_C_IO = (1U << __FIO_OPT_C_IO), | |
59 | FIO_OPT_C_FILE = (1U << __FIO_OPT_C_FILE), | |
60 | FIO_OPT_C_STAT = (1U << __FIO_OPT_C_STAT), | |
61 | FIO_OPT_C_LOG = (1U << __FIO_OPT_C_LOG), | |
62 | FIO_OPT_C_PROFILE = (1U << __FIO_OPT_C_PROFILE), | |
63 | FIO_OPT_C_INVALID = (1U << __FIO_OPT_C_NR), | |
64 | }; | |
65 | ||
66 | enum opt_category_group { | |
67 | __FIO_OPT_G_RATE = 0, | |
68 | __FIO_OPT_G_ZONE, | |
69 | __FIO_OPT_G_RWMIX, | |
70 | __FIO_OPT_G_VERIFY, | |
71 | __FIO_OPT_G_TRIM, | |
72 | __FIO_OPT_G_IOLOG, | |
73 | __FIO_OPT_G_IO_DEPTH, | |
74 | __FIO_OPT_G_IO_FLOW, | |
75 | __FIO_OPT_G_DESC, | |
76 | __FIO_OPT_G_FILENAME, | |
77 | __FIO_OPT_G_IO_BASIC, | |
78 | __FIO_OPT_G_CGROUP, | |
79 | __FIO_OPT_G_RUNTIME, | |
80 | __FIO_OPT_G_PROCESS, | |
81 | __FIO_OPT_G_CRED, | |
82 | __FIO_OPT_G_CLOCK, | |
83 | __FIO_OPT_G_IO_TYPE, | |
84 | __FIO_OPT_G_THINKTIME, | |
85 | __FIO_OPT_G_RANDOM, | |
86 | __FIO_OPT_G_IO_BUF, | |
87 | __FIO_OPT_G_TIOBENCH, | |
88 | __FIO_OPT_G_ERR, | |
89 | __FIO_OPT_G_NR, | |
90 | ||
91 | FIO_OPT_G_RATE = (1U << __FIO_OPT_G_RATE), | |
92 | FIO_OPT_G_ZONE = (1U << __FIO_OPT_G_ZONE), | |
93 | FIO_OPT_G_RWMIX = (1U << __FIO_OPT_G_RWMIX), | |
94 | FIO_OPT_G_VERIFY = (1U << __FIO_OPT_G_VERIFY), | |
95 | FIO_OPT_G_TRIM = (1U << __FIO_OPT_G_TRIM), | |
96 | FIO_OPT_G_IOLOG = (1U << __FIO_OPT_G_IOLOG), | |
97 | FIO_OPT_G_IO_DEPTH = (1U << __FIO_OPT_G_IO_DEPTH), | |
98 | FIO_OPT_G_IO_FLOW = (1U << __FIO_OPT_G_IO_FLOW), | |
99 | FIO_OPT_G_DESC = (1U << __FIO_OPT_G_DESC), | |
100 | FIO_OPT_G_FILENAME = (1U << __FIO_OPT_G_FILENAME), | |
101 | FIO_OPT_G_IO_BASIC = (1U << __FIO_OPT_G_IO_BASIC), | |
102 | FIO_OPT_G_CGROUP = (1U << __FIO_OPT_G_CGROUP), | |
103 | FIO_OPT_G_RUNTIME = (1U << __FIO_OPT_G_RUNTIME), | |
104 | FIO_OPT_G_PROCESS = (1U << __FIO_OPT_G_PROCESS), | |
105 | FIO_OPT_G_CRED = (1U << __FIO_OPT_G_CRED), | |
106 | FIO_OPT_G_CLOCK = (1U << __FIO_OPT_G_CLOCK), | |
107 | FIO_OPT_G_IO_TYPE = (1U << __FIO_OPT_G_IO_TYPE), | |
108 | FIO_OPT_G_THINKTIME = (1U << __FIO_OPT_G_THINKTIME), | |
109 | FIO_OPT_G_RANDOM = (1U << __FIO_OPT_G_RANDOM), | |
110 | FIO_OPT_G_IO_BUF = (1U << __FIO_OPT_G_IO_BUF), | |
111 | FIO_OPT_G_TIOBENCH = (1U << __FIO_OPT_G_TIOBENCH), | |
112 | FIO_OPT_G_ERR = (1U << __FIO_OPT_G_ERR), | |
113 | FIO_OPT_G_INVALID = (1U << __FIO_OPT_G_NR), | |
114 | }; | |
115 | ||
9f988e2e | 116 | #endif |