Fix build on x86-64 distros without __NR_pread64/pwrite64
[fio.git] / engines / syslet-rw.c
index fe400daa501dd4e8e31ecc1db6129ab7fb0bc921..0b2497a7e8c2029660825a1dc4aeb7ff533a64bb 100644 (file)
@@ -1,5 +1,8 @@
 /*
- * read/write() engine that uses syslet to be async
+ * syslet engine
+ *
+ * IO engine that does regular pread(2)/pwrite(2) to transfer data, but
+ * with syslets to make the execution async.
  *
  */
 #include <stdio.h>
 #include <unistd.h>
 #include <errno.h>
 #include <assert.h>
+#include <asm/unistd.h>
 
 #include "../fio.h"
 #include "../os.h"
 
 #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;
@@ -154,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);