Move thread options into a seperate structure
[fio.git] / engines / syslet-rw.c
index b635f6440d1fd1089bfb9150e892f58c3358cc2a..a293e7f4715d415622f50b971ac1012a513ec9a2 100644 (file)
 
 #ifdef FIO_HAVE_SYSLET
 
+#ifdef __NR_pread64
+#define __NR_fio_pread __NR_pread64
+#define __NR_fio_pwrite        __NR_pwrite64
+#else
+#define __NR_fio_pread __NR_pread
+#define __NR_fio_pwrite        __NR_pwrite
+#endif
+
 struct syslet_data {
        struct io_u **events;
        unsigned int nr_events;
@@ -55,7 +63,7 @@ static void fio_syslet_complete_atom(struct thread_data *td,
                else if (ret < 0)
                        io_u->error = ret;
 
-               assert(sd->nr_events < td->iodepth);
+               assert(sd->nr_events < td->o.iodepth);
                sd->events[sd->nr_events++] = io_u;
 
                if (atom == last)
@@ -82,7 +90,7 @@ static void fio_syslet_complete(struct thread_data *td)
                        break;
 
                sd->ring[sd->ahu.user_ring_idx] = NULL;
-               if (++sd->ahu.user_ring_idx == td->iodepth)
+               if (++sd->ahu.user_ring_idx == td->o.iodepth)
                        sd->ahu.user_ring_idx = 0;
 
                fio_syslet_complete_atom(td, atom);
@@ -158,9 +166,9 @@ static void fio_syslet_prep_rw(struct io_u *io_u, struct fio_file *f)
         * prepare rw
         */
        if (io_u->ddir == DDIR_READ)
-               nr = __NR_pread64;
+               nr = __NR_fio_pread;
        else
-               nr = __NR_pwrite64;
+               nr = __NR_fio_pwrite;
 
        init_atom(&io_u->req.atom, nr, &f->fd, &io_u->xfer_buf,
                  &io_u->xfer_buflen, &io_u->offset, &io_u->req.ret, 0, io_u);
@@ -295,13 +303,13 @@ static int fio_syslet_init(struct thread_data *td)
 
        sd = malloc(sizeof(*sd));
        memset(sd, 0, sizeof(*sd));
-       sd->events = malloc(sizeof(struct io_u *) * td->iodepth);
-       memset(sd->events, 0, sizeof(struct io_u *) * td->iodepth);
+       sd->events = malloc(sizeof(struct io_u *) * td->o.iodepth);
+       memset(sd->events, 0, sizeof(struct io_u *) * td->o.iodepth);
 
        /*
         * This will handily fail for kernels where syslet isn't available
         */
-       if (async_head_init(sd, td->iodepth)) {
+       if (async_head_init(sd, td->o.iodepth)) {
                free(sd->events);
                free(sd);
                return 1;