X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=53e174e1b525808674143ef667960de6aad34dbd;hb=c06aa240c904becbafb8457ed3b828cf0d38a180;hp=d8b01527e5af2248f68cc78938f951b0d9b9aa41;hpb=076efc7c60c351df783960a646e7fe8fba29dc19;p=fio.git diff --git a/fio.h b/fio.h index d8b01527..53e174e1 100644 --- a/fio.h +++ b/fio.h @@ -63,7 +63,7 @@ struct io_u { struct timeval start_time; struct timeval issue_time; - char *buf; + void *buf; unsigned int buflen; unsigned long long offset; @@ -164,7 +164,7 @@ struct fio_file { * This describes a single thread/process executing a fio job. */ struct thread_data { - char name[32]; + char *name; char *directory; char *filename; char verror[80]; @@ -187,25 +187,28 @@ struct thread_data { unsigned int ioprio; unsigned int last_was_sync; - unsigned char sequential; - unsigned char odirect; - unsigned char invalidate_cache; - unsigned char create_serialize; - unsigned char create_fsync; - unsigned char end_fsync; - unsigned char sync_io; - unsigned char verify; - unsigned char use_thread; - unsigned char unlink; - unsigned char do_disk_util; - unsigned char override_sync; - unsigned char rand_repeatable; - unsigned char write_lat_log; - unsigned char write_bw_log; - - unsigned int bs; - unsigned int min_bs; - unsigned int max_bs; + unsigned int sequential; + unsigned int odirect; + unsigned int invalidate_cache; + unsigned int create_serialize; + unsigned int create_fsync; + unsigned int end_fsync; + unsigned int sync_io; + unsigned int verify; + unsigned int use_thread; + unsigned int unlink; + unsigned int do_disk_util; + unsigned int override_sync; + unsigned int rand_repeatable; + unsigned int write_lat_log; + unsigned int write_bw_log; + unsigned int norandommap; + unsigned int bs_unaligned; + + unsigned int bs[2]; + unsigned int min_bs[2]; + unsigned int max_bs[2]; + unsigned int rw_min_bs; unsigned int thinktime; unsigned int fsync_blocks; unsigned int start_delay; @@ -362,7 +365,7 @@ extern struct thread_data *threads; #define td_rw(td) ((td)->iomix != 0) #define BLOCKS_PER_MAP (8 * sizeof(long)) -#define TO_MAP_BLOCK(td, f, b) ((b) - ((f)->file_offset / (td)->min_bs)) +#define TO_MAP_BLOCK(td, f, b) ((b) - ((f)->file_offset / (td)->rw_min_bs)) #define RAND_MAP_IDX(td, f, b) (TO_MAP_BLOCK(td, f, b) / BLOCKS_PER_MAP) #define RAND_MAP_BIT(td, f, b) (TO_MAP_BLOCK(td, f, b) & (BLOCKS_PER_MAP - 1)) @@ -415,6 +418,9 @@ struct io_completion_data { #ifndef min #define min(a, b) ((a) < (b) ? (a) : (b)) #endif +#ifndef max +#define max(a, b) ((a) > (b) ? (a) : (b)) +#endif /* * Log exports @@ -452,7 +458,7 @@ extern unsigned long time_since_now(struct timeval *); extern unsigned long mtime_since_genesis(void); extern void __usec_sleep(unsigned int); extern void usec_sleep(struct thread_data *, unsigned long); -extern void rate_throttle(struct thread_data *, unsigned long, unsigned int); +extern void rate_throttle(struct thread_data *, unsigned long, unsigned int, int); /* * Init functions @@ -575,7 +581,7 @@ struct ioengine_ops { #define FIO_IOOPS_VERSION 3 -extern struct ioengine_ops *load_ioengine(struct thread_data *, char *); +extern struct ioengine_ops *load_ioengine(struct thread_data *, const char *); extern void close_ioengine(struct thread_data *); /*