X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=f859608c32114a5c520253b5a3ade9ac55c2d2f3;hb=98aa62d863d78aaa725c37f2588aba415f5b224c;hp=f8b8e389800dcac3975788657241db2101dde7e1;hpb=b46928282e0a890f49250e79b81af773a2b7108f;p=fio.git diff --git a/fio.h b/fio.h index f8b8e389..f859608c 100644 --- a/fio.h +++ b/fio.h @@ -10,6 +10,7 @@ #include #include #include +#include #include "list.h" #include "md5.h" @@ -63,7 +64,7 @@ struct io_u { struct timeval start_time; struct timeval issue_time; - char *buf; + void *buf; unsigned int buflen; unsigned long long offset; @@ -187,25 +188,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; @@ -344,7 +348,6 @@ struct thread_data { #define td_verror(td, err) __td_verror((td), (err), strerror((err))) #define td_vmsg(td, err, msg) __td_verror((td), (err), (msg)) -extern int rate_quit; extern int exitall_on_terminate; extern int thread_number; extern int shm_id; @@ -352,7 +355,7 @@ extern int groupid; extern int terse_output; extern FILE *f_out; extern FILE *f_err; -extern char *fio_inst_prefix; +extern const char *fio_inst_prefix; extern int temp_stall_ts; extern struct thread_data *threads; @@ -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,8 @@ 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); +extern void fill_start_time(struct timeval *); /* * Init functions