Commit | Line | Data |
---|---|---|
79d16311 JA |
1 | #ifndef FIO_PROFILE_H |
2 | #define FIO_PROFILE_H | |
3 | ||
4 | #include "flist.h" | |
5 | ||
7eb36574 JA |
6 | /* |
7 | * Functions for overriding internal fio io_u functions | |
8 | */ | |
9 | struct prof_io_ops { | |
58c55ba0 JA |
10 | int (*td_init)(struct thread_data *); |
11 | void (*td_exit)(struct thread_data *); | |
12 | ||
6aca9b3d JA |
13 | int (*fill_io_u_off)(struct thread_data *, struct io_u *, unsigned int *); |
14 | int (*fill_io_u_size)(struct thread_data *, struct io_u *, unsigned int); | |
7eb36574 | 15 | struct fio_file *(*get_next_file)(struct thread_data *); |
d4afedfd JA |
16 | |
17 | int (*io_u_lat)(struct thread_data *, uint64_t); | |
7eb36574 JA |
18 | }; |
19 | ||
79d16311 JA |
20 | struct profile_ops { |
21 | struct flist_head list; | |
22 | char name[32]; | |
e58eb86d | 23 | char desc[64]; |
79d16311 JA |
24 | int flags; |
25 | ||
2363d8df JA |
26 | /* |
27 | * Profile specific options | |
28 | */ | |
e2de69da | 29 | struct fio_option *options; |
7b504edd | 30 | void *opt_data; |
2363d8df JA |
31 | |
32 | /* | |
33 | * Called after parsing options, to prepare 'cmdline' | |
34 | */ | |
d4afedfd | 35 | int (*prep_cmd)(void); |
2363d8df JA |
36 | |
37 | /* | |
38 | * The complete command line | |
39 | */ | |
40 | const char **cmdline; | |
15dc1934 | 41 | |
7eb36574 | 42 | struct prof_io_ops *io_ops; |
79d16311 JA |
43 | }; |
44 | ||
07b3232d | 45 | int register_profile(struct profile_ops *); |
79d16311 JA |
46 | void unregister_profile(struct profile_ops *); |
47 | int load_profile(const char *); | |
15dc1934 JA |
48 | struct profile_ops *find_profile(const char *); |
49 | void profile_add_hooks(struct thread_data *); | |
79d16311 | 50 | |
58c55ba0 JA |
51 | int profile_td_init(struct thread_data *); |
52 | void profile_td_exit(struct thread_data *); | |
53 | ||
79d16311 | 54 | #endif |