blob: 37f5d7c871127a8bf5858a3fda620684a0e8438d [file] [log] [blame]
Jens Axboe0d29de82010-09-01 13:54:15 +02001#ifndef FIO_TRIM_H
2#define FIO_TRIM_H
3
4#include "fio.h"
5
6#ifdef FIO_HAVE_TRIM
Elliott Hugheseda3a602017-05-19 18:53:02 -07007extern bool __must_check get_next_trim(struct thread_data *td, struct io_u *io_u);
8extern bool io_u_should_trim(struct thread_data *td, struct io_u *io_u);
Jens Axboe0d29de82010-09-01 13:54:15 +02009
10/*
11 * Determine whether a given io_u should be logged for verify or
12 * for discard
13 */
14static inline void remove_trim_entry(struct thread_data *td, struct io_piece *ipo)
15{
16 if (!flist_empty(&ipo->trim_list)) {
17 flist_del_init(&ipo->trim_list);
18 td->trim_entries--;
19 }
20}
21
22#else
Elliott Hugheseda3a602017-05-19 18:53:02 -070023static inline bool get_next_trim(struct thread_data *td, struct io_u *io_u)
Jens Axboe0d29de82010-09-01 13:54:15 +020024{
Elliott Hugheseda3a602017-05-19 18:53:02 -070025 return false;
Jens Axboe0d29de82010-09-01 13:54:15 +020026}
Elliott Hugheseda3a602017-05-19 18:53:02 -070027static inline bool io_u_should_trim(struct thread_data *td, struct io_u *io_u)
Jens Axboe0d29de82010-09-01 13:54:15 +020028{
Elliott Hugheseda3a602017-05-19 18:53:02 -070029 return false;
Jens Axboe0d29de82010-09-01 13:54:15 +020030}
31static inline void remove_trim_entry(struct thread_data *td, struct io_piece *ipo)
32{
33}
Jens Axboe0d29de82010-09-01 13:54:15 +020034#endif
35
36#endif