+
+ /*
+ * Pre-run and post-run shell
+ */
+ char *exec_prerun;
+ char *exec_postrun;
+
+ unsigned int rate;
+ unsigned int ratemin;
+ unsigned int ratecycle;
+ unsigned int rate_iops;
+ unsigned int rate_iops_min;
+
+ char *ioscheduler;
+
+ /*
+ * CPU "io" cycle burner
+ */
+ unsigned int cpuload;
+ unsigned int cpucycle;
+};
+
+#define FIO_VERROR_SIZE 128
+
+/*
+ * This describes a single thread/process executing a fio job.
+ */
+struct thread_data {
+ struct thread_options o;
+ char verror[FIO_VERROR_SIZE];
+ pthread_t thread;
+ int thread_number;
+ int groupid;
+ struct thread_stat ts;
+ struct fio_file *files;
+ unsigned int files_index;
+ unsigned int nr_open_files;
+ unsigned int nr_normal_files;
+ union {
+ unsigned int next_file;
+ os_random_state_t next_file_state;
+ };
+ int error;
+ pid_t pid;
+ char *orig_buffer;
+ size_t orig_buffer_size;
+ volatile int terminate;
+ volatile int runstate;
+ unsigned int ioprio;
+ unsigned int last_was_sync;
+
+ char *mmapfile;
+ int mmapfd;
+