X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=a62971d1637d88f09da136d92ed1ee3909944b14;hb=9f8f2064bcb196c10c9d3a2b64b951d796af22b5;hp=1e63f3b63747b761a75c854e2ec79bf0ac5cdd94;hpb=7bb48f84ac78cac1f90e3e04d0220d90d6a64a6b;p=fio.git diff --git a/fio.h b/fio.h index 1e63f3b6..a62971d1 100644 --- a/fio.h +++ b/fio.h @@ -13,6 +13,7 @@ #include #include +#include "compiler.h" #include "list.h" #include "rbtree.h" #include "md5.h" @@ -240,6 +241,8 @@ enum fio_file_flags { FIO_FILE_EXISTS = 1 << 3, /* file there */ FIO_FILE_EXTEND = 1 << 4, /* needs extend */ FIO_FILE_NOSORT = 1 << 5, /* don't sort verify blocks */ + FIO_FILE_DONE = 1 << 6, /* io completed to this file */ + FIO_SIZE_KNOWN = 1 << 7, /* size has been set */ }; /* @@ -446,6 +449,7 @@ struct thread_data { struct fio_file *files; unsigned int files_index; unsigned int nr_open_files; + unsigned int nr_done_files; unsigned int nr_normal_files; union { unsigned int next_file; @@ -644,7 +648,7 @@ struct disk_util { char *name; char path[256]; - dev_t dev; + int major, minor; struct disk_util_stat dus; struct disk_util_stat last_dus; @@ -742,6 +746,21 @@ extern void dup_files(struct thread_data *, struct thread_data *); extern void print_thread_status(void); extern void print_status_init(int); +/* + * disk util stuff + */ +#ifdef FIO_HAVE_DISK_UTIL +extern void show_disk_util(void); +extern void disk_util_timer_arm(void); +extern void init_disk_util(struct thread_data *); +extern void update_io_ticks(void); +#else +#define show_disk_util() +#define disk_util_timer_arm() +#define init_disk_util(td) +#define update_io_ticks() +#endif + /* * Thread life cycle. Once a thread has a runstate beyond TD_INITIALIZED, it * will never back again. It may cycle between running/verififying/fsyncing. @@ -836,7 +855,7 @@ struct ioengine_ops { void *dlhandle; }; -#define FIO_IOOPS_VERSION 6 +#define FIO_IOOPS_VERSION 7 extern struct ioengine_ops *load_ioengine(struct thread_data *, const char *); extern void register_ioengine(struct ioengine_ops *); @@ -865,4 +884,10 @@ extern void close_ioengine(struct thread_data *); } \ } while (0) +static inline void clear_error(struct thread_data *td) +{ + td->error = 0; + td->verror[0] = '\0'; +} + #endif