*
* IO engine using the GUASI library.
*
- * This is currently disabled. To enable it, execute:
- *
- * $ export EXTFLAGS="-DFIO_HAVE_GUASI"
- * $ export EXTLIBS="-lguasi"
- *
- * before running make. You'll need the GUASI lib as well:
+ * Before running make. You'll need the GUASI lib as well:
*
* http://www.xmailserver.org/guasi-lib.html
*
#include "../fio.h"
-#ifdef FIO_HAVE_GUASI
-
#define GFIO_MIN_THREADS 32
#ifndef GFIO_MAX_THREADS
#define GFIO_MAX_THREADS 2000
static struct io_u *fio_guasi_event(struct thread_data *td, int event)
{
- struct guasi_data *ld = td->io_ops->data;
+ struct guasi_data *ld = td->io_ops_data;
struct io_u *io_u;
struct guasi_reqinfo rinf;
}
static int fio_guasi_getevents(struct thread_data *td, unsigned int min,
- unsigned int max, struct timespec *t)
+ unsigned int max, const struct timespec *t)
{
- struct guasi_data *ld = td->io_ops->data;
+ struct guasi_data *ld = td->io_ops_data;
int n, r;
long timeo = -1;
return n;
}
-static int fio_guasi_queue(struct thread_data *td, struct io_u *io_u)
+static enum fio_q_status fio_guasi_queue(struct thread_data *td,
+ struct io_u *io_u)
{
- struct guasi_data *ld = td->io_ops->data;
+ struct guasi_data *ld = td->io_ops_data;
fio_ro_check(td, io_u);
{
int i;
struct io_u *io_u;
- struct timeval now;
+ struct timespec now;
if (!fio_fill_issue_time(td))
return;
static int fio_guasi_commit(struct thread_data *td)
{
- struct guasi_data *ld = td->io_ops->data;
+ struct guasi_data *ld = td->io_ops_data;
int i;
struct io_u *io_u;
struct fio_file *f;
static void fio_guasi_cleanup(struct thread_data *td)
{
- struct guasi_data *ld = td->io_ops->data;
+ struct guasi_data *ld = td->io_ops_data;
int n;
GDBG_PRINT(("fio_guasi_cleanup(%p)\n", ld));
ld->queued_nr = 0;
ld->reqs_nr = 0;
- td->io_ops->data = ld;
+ td->io_ops_data = ld;
GDBG_PRINT(("fio_guasi_init(): depth=%d -> %p\n", td->o.iodepth, ld));
return 0;
.get_file_size = generic_get_file_size,
};
-#else /* FIO_HAVE_GUASI */
-
-/*
- * When we have a proper configure system in place, we simply wont build
- * and install this io engine. For now install a crippled version that
- * just complains and fails to load.
- */
-static int fio_guasi_init(struct thread_data fio_unused *td)
-{
- fprintf(stderr, "fio: guasi not available\n");
- return 1;
-}
-
-static struct ioengine_ops ioengine = {
- .name = "guasi",
- .version = FIO_IOOPS_VERSION,
- .init = fio_guasi_init,
-};
-
-#endif
-
static void fio_init fio_guasi_register(void)
{
register_ioengine(&ioengine);