#include "ioengine.h"
#include "iolog.h"
#include "helpers.h"
+#include "options.h"
+#include "profile.h"
+#include "time.h"
#ifdef FIO_HAVE_GUASI
#include <guasi.h>
unsigned int gtod_reduce;
unsigned int gtod_cpu;
unsigned int gtod_offload;
+ enum fio_cs clocksource;
char *read_iolog_file;
char *write_iolog_file;
unsigned int uid;
unsigned int gid;
+
+ unsigned int sync_file_range;
};
#define FIO_VERROR_SIZE 128
unsigned int file_service_left;
struct fio_file *file_service_file;
+ unsigned int sync_file_range_nr;
+
/*
* For generating file sizes
*/
*/
unsigned int total_err_count;
int first_error;
+
+ /*
+ * Can be overloaded by profiles
+ */
+ struct prof_io_ops prof_io_ops;
+ void *prof_data;
};
/*
extern char *job_section;
extern int fio_gtod_offload;
extern int fio_gtod_cpu;
+extern enum fio_cs fio_clock_source;
extern struct thread_data *threads;
return 0;
}
-/*
- * Time functions
- */
-extern unsigned long long utime_since(struct timeval *, struct timeval *);
-extern unsigned long long utime_since_now(struct timeval *);
-extern unsigned long mtime_since(struct timeval *, struct timeval *);
-extern unsigned long mtime_since_now(struct timeval *);
-extern unsigned long time_since_now(struct timeval *);
-extern unsigned long mtime_since_genesis(void);
-extern void usec_spin(unsigned int);
-extern void usec_sleep(struct thread_data *, unsigned long);
-extern void fill_start_time(struct timeval *);
-extern void fio_gettime(struct timeval *, void *);
-extern void fio_gtod_init(void);
-extern void fio_gtod_update(void);
-extern void set_genesis_time(void);
-extern int ramp_time_over(struct thread_data *);
-extern int in_ramp_time(struct thread_data *);
-
/*
* Init/option functions
*/
extern void td_fill_rand_seeds(struct thread_data *);
extern void add_job_opts(const char **);
#define FIO_GETOPT_JOB 0x89988998
-#define FIO_NR_OPTIONS 512
+#define FIO_NR_OPTIONS (FIO_MAX_OPTS + 128)
/*
* ETA/status stuff