Move td_* ddir defines
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 72ca7f6ce232bbc40736d1f0b1c1ad416f2e0f40..7a4b9c69fbe3b94dc62a8a828f2238ebc493c6ea 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -332,12 +332,10 @@ struct thread_data {
 
        struct timeval start;   /* start of this loop */
        struct timeval epoch;   /* time job was started */
-       struct timeval rw_end[2];
        struct timeval last_issue;
        struct timeval tv_cache;
        unsigned int tv_cache_nr;
        unsigned int tv_cache_mask;
-       unsigned int rw_end_set[2];
        unsigned int ramp_time_over;
 
        /*
@@ -373,16 +371,6 @@ struct thread_data {
        os_random_state_t file_size_state;
 };
 
-/*
- * roundrobin available files, or choose one at random, or do each one
- * serially.
- */
-enum {
-       FIO_FSERVICE_RANDOM     = 1,
-       FIO_FSERVICE_RR         = 2,
-       FIO_FSERVICE_SEQ        = 3,
-};
-
 /*
  * when should interactive ETA output be generated
  */
@@ -425,12 +413,6 @@ extern int fio_gtod_cpu;
 
 extern struct thread_data *threads;
 
-#define td_read(td)            ((td)->o.td_ddir & TD_DDIR_READ)
-#define td_write(td)           ((td)->o.td_ddir & TD_DDIR_WRITE)
-#define td_rw(td)              (((td)->o.td_ddir & TD_DDIR_RW) == TD_DDIR_RW)
-#define td_random(td)          ((td)->o.td_ddir & TD_DDIR_RAND)
-#define file_randommap(td, f)  (!(td)->o.norandommap && (f)->file_map)
-
 static inline void fio_ro_check(struct thread_data *td, struct io_u *io_u)
 {
        assert(!(io_u->ddir == DDIR_WRITE && !td_write(td)));
@@ -455,72 +437,6 @@ static inline int should_fsync(struct thread_data *td)
        return 0;
 }
 
-/*
- * Disk utils as read in /sys/block/<dev>/stat
- */
-struct disk_util_stat {
-       unsigned ios[2];
-       unsigned merges[2];
-       unsigned long long sectors[2];
-       unsigned ticks[2];
-       unsigned io_ticks;
-       unsigned time_in_queue;
-};
-
-/*
- * Per-device disk util management
- */
-struct disk_util {
-       struct flist_head list;
-       /* If this disk is a slave, hook it into the master's
-        * list using this head.
-        */
-       struct flist_head slavelist;
-
-       char *name;
-       char *sysfs_root;
-       char path[256];
-       int major, minor;
-
-       struct disk_util_stat dus;
-       struct disk_util_stat last_dus;
-
-       /* For software raids, this entry maintains pointers to the
-        * entries for the slave devices. The disk_util entries for
-        * the slaves devices should primarily be maintained through
-        * the disk_list list, i.e. for memory allocation and
-        * de-allocation, etc. Whereas this list should be used only
-        * for aggregating a software RAID's disk util figures.
-        */
-       struct flist_head slaves;
-
-       unsigned long msec;
-       struct timeval time;
-
-       struct fio_mutex *lock;
-       unsigned long users;
-};
-
-static inline void disk_util_inc(struct disk_util *du)
-{
-       if (du) {
-               fio_mutex_down(du->lock);
-               du->users++;
-               fio_mutex_up(du->lock);
-       }
-}
-
-static inline void disk_util_dec(struct disk_util *du)
-{
-       if (du) {
-               fio_mutex_down(du->lock);
-               du->users--;
-               fio_mutex_up(du->lock);
-       }
-}
-
-#define DISK_UTIL_MSEC (250)
-
 /*
  * Time functions
  */
@@ -562,19 +478,6 @@ extern void td_fill_rand_seeds(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 init_disk_util(struct thread_data *);
-extern void update_io_ticks(void);
-#else
-#define show_disk_util()
-#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.
@@ -642,39 +545,6 @@ extern int load_blktrace(struct thread_data *, const char *);
        }       \
 } while (0)
 
-static inline void fio_file_reset(struct fio_file *f)
-{
-       f->last_free_lookup = 0;
-       f->last_pos = f->file_offset;
-       if (f->file_map)
-               memset(f->file_map, 0, f->num_maps * sizeof(int));
-}
-
-static inline void clear_error(struct thread_data *td)
-{
-       td->error = 0;
-       td->verror[0] = '\0';
-}
-
-#ifdef FIO_INC_DEBUG
-static inline void dprint_io_u(struct io_u *io_u, const char *p)
-{
-       struct fio_file *f = io_u->file;
-
-       dprint(FD_IO, "%s: io_u %p: off=%llu/len=%lu/ddir=%d", p, io_u,
-                                       (unsigned long long) io_u->offset,
-                                       io_u->buflen, io_u->ddir);
-       if (fio_debug & (1 << FD_IO)) {
-               if (f)
-                       log_info("/%s", f->file_name);
-
-               log_info("\n");
-       }
-}
-#else
-#define dprint_io_u(io_u, p)
-#endif
-
 static inline int fio_fill_issue_time(struct thread_data *td)
 {
        if (td->o.read_iolog_file ||
@@ -684,4 +554,47 @@ 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;
+
+       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) {
+                               buf[len] = postfix[i];
+                               buf[len + 1] = '\0';
+                       }
+                       return buf;
+               }
+
+               if ((num % thousand) >= (thousand / 2))
+                       carry = 1;
+
+               num /= thousand;
+               num += carry;
+               i++;
+       } while (i <= 5);
+
+       return buf;
+}
+
 #endif