Fix disk utilization and ioscheduler switch on raw devices
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 1e63f3b63747b761a75c854e2ec79bf0ac5cdd94..a86a58281c62981bc3625d70739f776c20acc055 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -13,6 +13,7 @@
 #include <string.h>
 #include <getopt.h>
 
+#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;
@@ -836,7 +840,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 +869,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