X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=d7875b04cf82bdd8981ddaa1eec5691f65301eb6;hp=67f0badf8cb690d0b2940038157d19745b7075f0;hb=cdd18ad87ed9a3639b76c41cfc9682ad7cce652e;hpb=d4ac64cc1e8bb64b71a1f8ae882ee171d02fe792 diff --git a/fio.h b/fio.h index 67f0badf..d7875b04 100644 --- a/fio.h +++ b/fio.h @@ -22,6 +22,8 @@ #include "arch/arch.h" #include "os/os.h" #include "mutex.h" +#include "log.h" +#include "debug.h" #ifdef FIO_HAVE_GUASI #include @@ -263,16 +265,15 @@ enum fio_ioengine_flags { FIO_NODISKUTIL = 1 << 4, /* diskutil can't handle filename */ FIO_UNIDIR = 1 << 5, /* engine is uni-directional */ FIO_NOIO = 1 << 6, /* thread does only pseudo IO */ + FIO_SIGQUIT = 1 << 7, /* needs SIGQUIT to exit */ }; enum fio_file_flags { FIO_FILE_OPEN = 1 << 0, /* file is open */ FIO_FILE_CLOSING = 1 << 1, /* file being closed */ - FIO_FILE_EXISTS = 1 << 2, /* file there */ - FIO_FILE_EXTEND = 1 << 3, /* needs extend */ - FIO_FILE_NOSORT = 1 << 4, /* don't sort verify blocks */ - FIO_FILE_DONE = 1 << 5, /* io completed to this file */ - FIO_SIZE_KNOWN = 1 << 6, /* size has been set */ + FIO_FILE_EXTEND = 1 << 2, /* needs extend */ + FIO_FILE_DONE = 1 << 3, /* io completed to this file */ + FIO_SIZE_KNOWN = 1 << 4, /* size has been set */ }; /* @@ -562,7 +563,7 @@ struct thread_data { unsigned long long io_skip_bytes; unsigned long long this_io_bytes[2]; unsigned long long zone_bytes; - struct fio_sem *mutex; + struct fio_mutex *mutex; /* * State for random io, a bitmap of blocks done vs not done @@ -660,13 +661,12 @@ extern int nr_process, nr_thread; extern int shm_id; extern int groupid; extern int terse_output; -extern FILE *f_out; -extern FILE *f_err; extern int temp_stall_ts; extern unsigned long long mlock_size; extern unsigned long page_mask, page_size; extern int read_only; extern int eta_print; +extern char *job_section; extern struct thread_data *threads; @@ -681,7 +681,7 @@ static inline void fio_ro_check(struct thread_data *td, struct io_u *io_u) } #define BLOCKS_PER_MAP (8 * sizeof(long)) -#define TO_MAP_BLOCK(td, f, b) ((b) - ((f)->file_offset / (unsigned long long) (td)->o.rw_min_bs)) +#define TO_MAP_BLOCK(td, f, b) (b) #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)) @@ -903,20 +903,6 @@ extern int is_blktrace(const char *); extern int load_blktrace(struct thread_data *, const char *); #endif -/* - * If logging output to a file, stderr should go to both stderr and f_err - */ -#define log_err(args...) do { \ - fprintf(f_err, ##args); \ - if (f_err != stderr) \ - fprintf(stderr, ##args); \ - } while (0) - -#define log_info(args...) fprintf(f_out, ##args) - -FILE *get_f_out(void); -FILE *get_f_err(void); - struct ioengine_ops { struct list_head list; char name[16]; @@ -972,34 +958,7 @@ static inline void clear_error(struct thread_data *td) td->verror[0] = '\0'; } -enum { - FD_PROCESS = 0, - FD_FILE, - FD_IO, - FD_MEM, - FD_BLKTRACE, - FD_VERIFY, - FD_DEBUG_MAX, -}; - #ifdef FIO_INC_DEBUG -struct debug_level { - const char *name; - unsigned long shift; -}; -extern struct debug_level debug_levels[]; - -extern unsigned long fio_debug; - -#define dprint(type, str, args...) \ - do { \ - assert(type < FD_DEBUG_MAX); \ - if ((((1 << type)) & fio_debug) == 0) \ - break; \ - log_info("%-8s ", debug_levels[(type)].name); \ - log_info(str, ##args); \ - } while (0) - static inline void dprint_io_u(struct io_u *io_u, const char *p) { struct fio_file *f = io_u->file; @@ -1014,7 +973,6 @@ static inline void dprint_io_u(struct io_u *io_u, const char *p) } } #else -#define dprint(type, str, args...) #define dprint_io_u(io_u, p) #endif