Commit | Line | Data |
---|---|---|
d6aed795 JA |
1 | #ifndef FIO_DDIR_H |
2 | #define FIO_DDIR_H | |
3 | ||
4 | enum fio_ddir { | |
5 | DDIR_READ = 0, | |
6eaf09d6 SL |
6 | DDIR_WRITE = 1, |
7 | DDIR_TRIM = 2, | |
8 | DDIR_RWDIR_CNT = 3, | |
9 | DDIR_SYNC = 3, | |
5f9099ea | 10 | DDIR_DATASYNC, |
44f29692 | 11 | DDIR_SYNC_FILE_RANGE, |
457bf399 | 12 | DDIR_WAIT, |
d6aed795 JA |
13 | DDIR_INVAL = -1, |
14 | }; | |
15 | ||
16 | enum td_ddir { | |
17 | TD_DDIR_READ = 1 << 0, | |
18 | TD_DDIR_WRITE = 1 << 1, | |
19 | TD_DDIR_RAND = 1 << 2, | |
6eaf09d6 | 20 | TD_DDIR_TRIM = 1 << 3, |
d6aed795 JA |
21 | TD_DDIR_RW = TD_DDIR_READ | TD_DDIR_WRITE, |
22 | TD_DDIR_RANDREAD = TD_DDIR_READ | TD_DDIR_RAND, | |
23 | TD_DDIR_RANDWRITE = TD_DDIR_WRITE | TD_DDIR_RAND, | |
24 | TD_DDIR_RANDRW = TD_DDIR_RW | TD_DDIR_RAND, | |
6eaf09d6 | 25 | TD_DDIR_RANDTRIM = TD_DDIR_TRIM | TD_DDIR_RAND, |
d6aed795 JA |
26 | }; |
27 | ||
29c8e868 JA |
28 | #define td_read(td) ((td)->o.td_ddir & TD_DDIR_READ) |
29 | #define td_write(td) ((td)->o.td_ddir & TD_DDIR_WRITE) | |
6eaf09d6 | 30 | #define td_trim(td) ((td)->o.td_ddir & TD_DDIR_TRIM) |
29c8e868 JA |
31 | #define td_rw(td) (((td)->o.td_ddir & TD_DDIR_RW) == TD_DDIR_RW) |
32 | #define td_random(td) ((td)->o.td_ddir & TD_DDIR_RAND) | |
7ebd796f | 33 | #define file_randommap(td, f) (!(td)->o.norandommap && (f)->io_axmap) |
29c8e868 | 34 | |
5f9099ea JA |
35 | static inline int ddir_sync(enum fio_ddir ddir) |
36 | { | |
44f29692 JA |
37 | return ddir == DDIR_SYNC || ddir == DDIR_DATASYNC || |
38 | ddir == DDIR_SYNC_FILE_RANGE; | |
5f9099ea JA |
39 | } |
40 | ||
ff58fced JA |
41 | static inline int ddir_rw(enum fio_ddir ddir) |
42 | { | |
6eaf09d6 | 43 | return ddir == DDIR_READ || ddir == DDIR_WRITE || ddir == DDIR_TRIM; |
ff58fced JA |
44 | } |
45 | ||
807f9971 JA |
46 | static inline const char *ddir_str(enum fio_ddir ddir) |
47 | { | |
48 | const char *ddir_str[] = { NULL, "read", "write", "rw", NULL, | |
d79db122 JA |
49 | "randread", "randwrite", "randrw", |
50 | "trim", NULL, NULL, NULL, "randtrim" }; | |
807f9971 JA |
51 | |
52 | return ddir_str[ddir]; | |
53 | } | |
54 | ||
6eaf09d6 SL |
55 | #define ddir_trim(ddir) ((ddir) == DDIR_TRIM) |
56 | ||
342f4be4 JA |
57 | #define ddir_rw_sum(arr) \ |
58 | ((arr)[DDIR_READ] + (arr)[DDIR_WRITE] + (arr)[DDIR_TRIM]) | |
59 | ||
d6aed795 | 60 | #endif |