X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=f5786ea69a1d5500d4cb9a73d24cf7e6a7f42b0a;hp=dd09ceec3a4bcf9570dc308c2d521cf42f2a9431;hb=f0d524b045ceef3454cbc66dbfe8ea51db298a62;hpb=814452bd47e0f2bb4825b8042b664f32de0aff8d diff --git a/fio.h b/fio.h index dd09ceec..f5786ea6 100644 --- a/fio.h +++ b/fio.h @@ -429,10 +429,11 @@ struct thread_options { unsigned long long start_offset; unsigned int bs[2]; + unsigned int ba[2]; unsigned int min_bs[2]; unsigned int max_bs[2]; - struct bssplit *bssplit; - unsigned int bssplit_nr; + struct bssplit *bssplit[2]; + unsigned int bssplit_nr[2]; unsigned int nr_files; unsigned int open_files; @@ -543,6 +544,7 @@ struct thread_data { int groupid; struct thread_stat ts; struct fio_file **files; + unsigned int files_size; unsigned int files_index; unsigned int nr_open_files; unsigned int nr_done_files; @@ -570,6 +572,8 @@ struct thread_data { char *sysfs_root; + unsigned long rand_seeds[6]; + os_random_state_t bsrange_state; os_random_state_t verify_state; @@ -852,6 +856,7 @@ extern int fio_show_option_help(const char *); extern void fio_options_dup_and_init(struct option *); 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 *); #define FIO_GETOPT_JOB 0x89988998 #define FIO_NR_OPTIONS 128 @@ -861,10 +866,10 @@ extern void options_mem_free(struct thread_data *); extern void close_files(struct thread_data *); extern void close_and_free_files(struct thread_data *); extern int __must_check setup_files(struct thread_data *); -extern int __must_check open_files(struct thread_data *); extern int __must_check file_invalidate_cache(struct thread_data *, struct fio_file *); extern int __must_check generic_open_file(struct thread_data *, struct fio_file *); extern int __must_check generic_close_file(struct thread_data *, struct fio_file *); +extern int __must_check generic_get_file_size(struct thread_data *, struct fio_file *); extern int add_file(struct thread_data *, const char *); extern void get_file(struct fio_file *); extern int __must_check put_file(struct thread_data *, struct fio_file *); @@ -964,6 +969,7 @@ extern int __must_check td_io_getevents(struct thread_data *, unsigned int, unsi extern int __must_check td_io_commit(struct thread_data *); extern int __must_check td_io_open_file(struct thread_data *, struct fio_file *); extern int td_io_close_file(struct thread_data *, struct fio_file *); +extern int __must_check td_io_get_file_size(struct thread_data *, struct fio_file *); /* * blktrace support @@ -989,11 +995,12 @@ struct ioengine_ops { void (*cleanup)(struct thread_data *); int (*open_file)(struct thread_data *, struct fio_file *); int (*close_file)(struct thread_data *, struct fio_file *); + int (*get_file_size)(struct thread_data *, struct fio_file *); void *data; void *dlhandle; }; -#define FIO_IOOPS_VERSION 9 +#define FIO_IOOPS_VERSION 10 extern struct ioengine_ops *load_ioengine(struct thread_data *, const char *); extern void register_ioengine(struct ioengine_ops *); @@ -1029,6 +1036,8 @@ 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)