unsigned char use_thread;
unsigned char do_disk_util;
unsigned char override_sync;
+ unsigned char rand_repeatable;
unsigned int bs;
unsigned int min_bs;
unsigned int thinktime;
unsigned int fsync_blocks;
unsigned int start_delay;
- unsigned int timeout;
+ unsigned long timeout;
enum fio_iotype io_engine;
unsigned int overwrite;
unsigned int bw_avg_time;
unsigned int numjobs;
unsigned int iodepth;
os_cpu_mask_t cpumask;
- unsigned int jobnum;
unsigned int iolog;
unsigned int read_iolog;
unsigned int write_iolog;
extern int thread_number;
extern int shm_id;
extern int groupid;
+extern int terse_output;
extern FILE *f_out;
extern FILE *f_err;
* Naturally this would not work for any type of contended semaphore or
* for real locking.
*/
-static inline void fio_sem_init(volatile int volatile *sem, int val)
+static inline void fio_sem_init(volatile int *sem, int val)
{
*sem = val;
}
-static inline void fio_sem_down(volatile int volatile *sem)
+static inline void fio_sem_down(volatile int *sem)
{
while (*sem == 0)
usleep(10000);
(*sem)--;
}
-static inline void fio_sem_up(volatile int volatile *sem)
+static inline void fio_sem_up(volatile int *sem)
{
(*sem)++;
}
+/*
+ * 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)
+
#endif