First snapshot of FIO for Windows
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index dfd8695779ef320480ade345c4e2db0f0970808a..c04ad8b2e37ce8dada1e97f7652174b2009f819c 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -71,7 +71,7 @@ enum {
 /*
  * How many depth levels to log
  */
-#define FIO_IO_U_MAP_NR        8
+#define FIO_IO_U_MAP_NR        7
 #define FIO_IO_U_LAT_U_NR 10
 #define FIO_IO_U_LAT_M_NR 12
 
@@ -126,7 +126,7 @@ struct thread_stat {
        unsigned long total_complete;
 
        unsigned long long io_bytes[2];
-       unsigned long runtime[2];
+       unsigned long long runtime[2];
        unsigned long total_run_time;
 
        /*
@@ -217,6 +217,7 @@ struct thread_options {
        unsigned int thinktime_blocks;
        unsigned int fsync_blocks;
        unsigned int fdatasync_blocks;
+       unsigned int barrier_blocks;
        unsigned long start_delay;
        unsigned long long timeout;
        unsigned long long ramp_time;
@@ -568,6 +569,8 @@ extern void options_mem_dupe(struct thread_data *);
 extern void options_mem_free(struct thread_data *);
 extern void td_fill_rand_seeds(struct thread_data *);
 extern void add_job_opts(const char **);
+extern char *num2str(unsigned long, int, int, int);
+
 #define FIO_GETOPT_JOB         0x89988998
 #define FIO_NR_OPTIONS         (FIO_MAX_OPTS + 128)
 
@@ -653,63 +656,6 @@ static inline int fio_fill_issue_time(struct thread_data *td)
        return 0;
 }
 
-/*
- * Cheesy number->string conversion, complete with carry rounding error.
- */
-static inline char *num2str(unsigned long num, int maxlen, int base, int pow2)
-{
-       char postfix[] = { ' ', 'K', 'M', 'G', 'P', 'E' };
-       unsigned int thousand;
-       char *buf;
-       int i, mod = 0;
-
-       if (pow2)
-               thousand = 1024;
-       else
-               thousand = 1000;
-
-       buf = malloc(128);
-
-       for (i = 0; base > 1; i++)
-               base /= thousand;
-
-       do {
-               int len, carry = 0;
-
-               len = sprintf(buf, "%'lu", num);
-               if (len <= maxlen) {
-                       if (i >= 1) {
-                               char dec[4];
-                               int j = 0;
-
-                               sprintf(dec, "%u", mod);
-                               if (maxlen - len >= 2) {
-                                       buf[len++] = '.';
-                                       while (maxlen - len) {
-                                               buf[len++] = dec[j++];
-                                               if (j == sizeof(dec) - 1)
-                                                       break;
-                                       }
-                               }
-
-                               buf[len] = postfix[i];
-                               buf[len + 1] = '\0';
-                       }
-                       return buf;
-               }
-
-               if ((num % thousand) >= (thousand / 2))
-                       carry = 1;
-
-               mod = num % thousand;
-               num /= thousand;
-               num += carry;
-               i++;
-       } while (i <= 5);
-
-       return buf;
-}
-
 static inline int __should_check_rate(struct thread_data *td,
                                      enum fio_ddir ddir)
 {