#include <assert.h>
#include "compiler/compiler.h"
-#include "list.h"
+#include "flist.h"
#include "fifo.h"
#include "rbtree.h"
#include "arch/arch.h"
#include <guasi.h>
#endif
+#ifdef FIO_HAVE_SOLARISAIO
+#include <sys/asynch.h>
+#endif
+
enum fio_ddir {
DDIR_READ = 0,
DDIR_WRITE,
struct io_piece {
union {
struct rb_node rb_node;
- struct list_head list;
+ struct flist_head list;
};
union {
int fileno;
#endif
#ifdef FIO_HAVE_GUASI
guasi_req_t greq;
+#endif
+#ifdef FIO_HAVE_SOLARISAIO
+ aio_result_t resultp;
#endif
};
struct timeval start_time;
struct fio_file *file;
- struct list_head list;
+ struct flist_head list;
/*
* Callback for io completion
* this structure holds state information for a single file.
*/
struct fio_file {
- struct list_head hash_list;
+ struct flist_head hash_list;
enum fio_filetype filetype;
/*
*/
unsigned int cur_depth;
unsigned int io_u_queued;
- struct list_head io_u_freelist;
- struct list_head io_u_busylist;
- struct list_head io_u_requeues;
+ struct flist_head io_u_freelist;
+ struct flist_head io_u_busylist;
+ struct flist_head io_u_requeues;
/*
* Rate state
* if we are overwriting. Otherwise just use a fifo.
*/
struct rb_root io_hist_tree;
- struct list_head io_hist_list;
+ struct flist_head io_hist_list;
/*
* For IO replaying
*/
- struct list_head io_log_list;
+ struct flist_head io_log_list;
/*
* timeout handling
* Per-device disk util management
*/
struct disk_util {
- struct list_head list;
+ struct flist_head list;
char *name;
char *sysfs_root;
/*
* io unit handling
*/
-#define queue_full(td) list_empty(&(td)->io_u_freelist)
+#define queue_full(td) flist_empty(&(td)->io_u_freelist)
extern struct io_u *__get_io_u(struct thread_data *);
extern struct io_u *get_io_u(struct thread_data *);
extern void put_io_u(struct thread_data *, struct io_u *);
#endif
struct ioengine_ops {
- struct list_head list;
+ struct flist_head list;
char name[16];
int version;
int flags;