b6ceb5bcefb6cef92f39890b5bbdc998c4ee165e
[fio.git] / dataplacement.h
1 #ifndef FIO_DATAPLACEMENT_H
2 #define FIO_DATAPLACEMENT_H
3
4 #include "io_u.h"
5
6 #define FDP_DIR_DTYPE   2
7 #define FDP_MAX_RUHS    128
8 #define FIO_MAX_DP_IDS  16
9
10 /*
11  * How fio chooses what placement identifier to use next. Choice of
12  * uniformly random, or roundrobin.
13  */
14 enum {
15         FIO_DP_RANDOM   = 0x1,
16         FIO_DP_RR       = 0x2,
17 };
18
19
20 enum {
21         FIO_DP_NONE     = 0x0,
22         FIO_DP_FDP      = 0x1,
23         FIO_DP_STREAMS  = 0x2,
24 };
25
26 struct fio_ruhs_info {
27         uint32_t nr_ruhs;
28         uint32_t pli_loc;
29         uint16_t plis[];
30 };
31
32 int dp_init(struct thread_data *td);
33 void fdp_free_ruhs_info(struct fio_file *f);
34 void dp_fill_dspec_data(struct thread_data *td, struct io_u *io_u);
35
36 #endif /* FIO_DATAPLACEMENT_H */