X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=e96a4dd1dcd1058071e20502d58003be38e88dae;hp=33b431939a9ee916e297ed0b62f8a5fce7eb4235;hb=041c462d8b4a8b8c8b0d84e967372250c250eaec;hpb=d7e9266cdb9311b07e2cfeb16a1c4390ca610836 diff --git a/fio.h b/fio.h index 33b43193..e96a4dd1 100644 --- a/fio.h +++ b/fio.h @@ -556,8 +556,27 @@ enum { TD_EXITED, TD_REAPED, TD_LAST, + TD_NR, }; +#define TD_ENG_FLAG_SHIFT 16 +#define TD_ENG_FLAG_MASK ((1U << 16) - 1) + +static inline enum fio_ioengine_flags td_ioengine_flags(struct thread_data *td) +{ + return (td->flags >> TD_ENG_FLAG_SHIFT) & TD_ENG_FLAG_MASK; +} + +static inline void td_set_ioengine_flags(struct thread_data *td) +{ + td->flags |= (td->io_ops->flags << TD_ENG_FLAG_SHIFT); +} + +static inline bool td_ioengine_flagged(struct thread_data *td, unsigned int val) +{ + return ((td->flags >> TD_ENG_FLAG_SHIFT) & val) != 0; +} + extern void td_set_runstate(struct thread_data *, int); extern int td_bump_runstate(struct thread_data *, int); extern void td_restore_runstate(struct thread_data *, int);