X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=b2f0e2f5853a54985ca5baf1e17a8d5198e2d040;hp=5726befcb9abc1f4423246862a73cdc5affd89d7;hb=82e3f7c44e4090c58ca8d463550e84d011996911;hpb=43b1215fe09eaac0fca0b2bc49011445ae9b3a53 diff --git a/fio.h b/fio.h index 5726befc..b2f0e2f5 100644 --- a/fio.h +++ b/fio.h @@ -110,6 +110,13 @@ enum { RATE_PROCESS_POISSON = 1, }; +enum { + F_ADV_NONE = 0, + F_ADV_TYPE, + F_ADV_RANDOM, + F_ADV_SEQUENTIAL, +}; + /* * Per-thread/process specific data. Only used for the network client * for now. @@ -198,8 +205,6 @@ struct thread_data { void *iolog_buf; FILE *iolog_f; - char *sysfs_root; - unsigned long rand_seeds[FIO_RAND_NR_OFFS]; struct frand_state bsrange_state; @@ -511,7 +516,6 @@ extern int fio_show_option_help(const char *); extern void fio_options_set_ioengine_opts(struct option *long_options, struct thread_data *td); extern void fio_options_dup_and_init(struct option *); extern void fio_options_mem_dupe(struct thread_data *); -extern void options_mem_dupe(void *data, struct fio_option *options); extern void td_fill_rand_seeds(struct thread_data *); extern void td_fill_verify_state_seed(struct thread_data *); extern void add_job_opts(const char **, int); @@ -528,6 +532,13 @@ extern uintptr_t page_size; extern int initialize_fio(char *envp[]); extern void deinitialize_fio(void); +#define N2S_NONE 0 +#define N2S_BITPERSEC 1 /* match unit_base for bit rates */ +#define N2S_PERSEC 2 +#define N2S_BIT 3 +#define N2S_BYTE 4 +#define N2S_BYTEPERSEC 8 /* match unit_base for byte rates */ + #define FIO_GETOPT_JOB 0x89000000 #define FIO_GETOPT_IOENGINE 0x98000000 #define FIO_NR_OPTIONS (FIO_MAX_OPTS + 128) @@ -606,6 +617,11 @@ extern int __must_check allocate_io_mem(struct thread_data *); extern void free_io_mem(struct thread_data *); extern void free_threads_shm(void); +#ifdef FIO_INTERNAL +#define PTR_ALIGN(ptr, mask) \ + (char *) (((uintptr_t) (ptr) + (mask)) & ~(mask)) +#endif + /* * Reset stats after ramp time completes */ @@ -630,6 +646,9 @@ extern void lat_target_check(struct thread_data *); extern void lat_target_init(struct thread_data *); extern void lat_target_reset(struct thread_data *); +/* + * Iterates all threads/processes within all the defined jobs + */ #define for_each_td(td, i) \ for ((i) = 0, (td) = &threads[0]; (i) < (int) thread_number; (i)++, (td)++) #define for_each_file(td, f, i) \