posixaio engine: residual data count
[fio.git] / engines / null.c
index 6bd51bab218d8179db7cce5fdd7945828fba7ef3..695afa11af0a1ebeedade04e23c5c6d7c1b1a12a 100644 (file)
@@ -18,11 +18,35 @@ static int fio_null_queue(struct thread_data fio_unused *td, struct io_u *io_u)
        return FIO_Q_COMPLETED;
 }
 
+static int fio_null_setup(struct thread_data *td)
+{
+       struct fio_file *f;
+       int i;
+
+       if (!td->total_file_size) {
+               log_err("fio: need size= set\n");
+               return 1;
+       }
+
+       td->io_size = td->total_file_size;
+       td->total_io_size = td->io_size;
+
+       for_each_file(td, f, i) {
+               f->fd = dup(STDOUT_FILENO);
+               f->real_file_size = td->total_io_size / td->nr_files;
+               f->file_size = f->real_file_size;
+       }
+
+       td->nr_open_files = td->nr_files;
+       return 0;
+}
+
 static struct ioengine_ops ioengine = {
        .name           = "null",
        .version        = FIO_IOOPS_VERSION,
+       .setup          = fio_null_setup,
        .queue          = fio_null_queue,
-       .flags          = FIO_SYNCIO | FIO_NULLIO,
+       .flags          = FIO_SYNCIO | FIO_DISKLESSIO | FIO_SELFOPEN,
 };
 
 static void fio_init fio_null_register(void)