X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=9a8184b94716fc9bbaf3c9661e6454158111f5d0;hb=e29d1b70a21e29801fb35dfbc1b236b7c8514055;hp=c778206b4097c03d4224d6aff62f76fe68c9b3fc;hpb=f6cbb269c54ff40f3922818d42117f5a8026df36;p=fio.git diff --git a/fio.h b/fio.h index c778206b..9a8184b9 100644 --- a/fio.h +++ b/fio.h @@ -427,10 +427,12 @@ extern int setup_rate(struct thread_data *); /* * Time functions */ +extern void time_init(void); extern unsigned long utime_since(struct timeval *, struct timeval *); extern unsigned long mtime_since(struct timeval *, struct timeval *); extern unsigned long mtime_since_now(struct timeval *); extern unsigned long time_since_now(struct timeval *); +extern unsigned long mtime_since_genesis(void); extern void __usec_sleep(unsigned int); extern void usec_sleep(struct thread_data *, unsigned long); extern void rate_throttle(struct thread_data *, unsigned long, unsigned int); @@ -447,6 +449,36 @@ extern int init_random_state(struct thread_data *); extern void close_files(struct thread_data *); extern int setup_files(struct thread_data *); +/* + * ETA/status stuff + */ +extern void print_thread_status(void); +extern void print_status_init(int); + +/* + * Thread life cycle. Once a thread has a runstate beyond TD_INITIALIZED, it + * will never back again. It may cycle between running/verififying/fsyncing. + * Once the thread reaches TD_EXITED, it is just waiting for the core to + * reap it. + */ +enum { + TD_NOT_CREATED = 0, + TD_CREATED, + TD_INITIALIZED, + TD_RUNNING, + TD_VERIFYING, + TD_FSYNCING, + TD_EXITED, + TD_REAPED, +}; + +/* + * Verify helpers + */ +extern void populate_verify_io_u(struct thread_data *, struct io_u *); +extern int get_next_verify(struct thread_data *td, struct io_u *); +extern int verify_io_u(struct io_u *); + /* * This is a pretty crappy semaphore implementation, but with the use that fio * has (just signalling start/go conditions), it doesn't have to be better.