X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Fnull.c;h=8c26ad7179aa1589720e7d6e3d4e84e4261d3cc8;hp=8a4d106be75b1879b466dd433ea2469e9bdd8c1b;hb=9109883a1c20c2cbadd2d2cb8ca80d03835eaa66;hpb=44c9d041dc17235981f66d69983f542fbfd48ab0 diff --git a/engines/null.c b/engines/null.c index 8a4d106b..8c26ad71 100644 --- a/engines/null.c +++ b/engines/null.c @@ -13,10 +13,7 @@ * LD_LIBRARY_PATH=./engines ./fio examples/cpp_null.fio * */ -#include #include -#include -#include #include #include "../fio.h" @@ -87,9 +84,9 @@ static void null_cleanup(struct null_data *nd) } } -static int null_init(struct thread_data *td, struct null_data **nd_ptr) +static struct null_data *null_init(struct thread_data *td) { - struct null_data *nd = (struct null_data *) malloc(sizeof(**nd_ptr)); + struct null_data *nd = (struct null_data *) malloc(sizeof(*nd)); memset(nd, 0, sizeof(*nd)); @@ -99,47 +96,48 @@ static int null_init(struct thread_data *td, struct null_data **nd_ptr) } else td->io_ops->flags |= FIO_SYNCIO; - *nd_ptr = nd; - return 0; + return nd; } #ifndef __cplusplus static struct io_u *fio_null_event(struct thread_data *td, int event) { - return null_event((struct null_data *)td->io_ops_data, event); + return null_event(td->io_ops_data, event); } static int fio_null_getevents(struct thread_data *td, unsigned int min_events, unsigned int max, const struct timespec *t) { - struct null_data *nd = (struct null_data *)td->io_ops_data; + struct null_data *nd = td->io_ops_data; return null_getevents(nd, min_events, max, t); } static int fio_null_commit(struct thread_data *td) { - return null_commit(td, (struct null_data *)td->io_ops_data); + return null_commit(td, td->io_ops_data); } static int fio_null_queue(struct thread_data *td, struct io_u *io_u) { - return null_queue(td, (struct null_data *)td->io_ops_data, io_u); + return null_queue(td, td->io_ops_data, io_u); } static int fio_null_open(struct thread_data *td, struct fio_file *f) { - return null_open((struct null_data *)td->io_ops_data, f); + return null_open(td->io_ops_data, f); } static void fio_null_cleanup(struct thread_data *td) { - null_cleanup((struct null_data *)td->io_ops_data); + null_cleanup(td->io_ops_data); } static int fio_null_init(struct thread_data *td) { - return null_init(td, (struct null_data **)&td->io_ops_data); + td->io_ops_data = null_init(td); + assert(td->io_ops_data); + return 0; } static struct ioengine_ops ioengine = { @@ -172,7 +170,8 @@ static void fio_exit fio_null_unregister(void) struct NullData { NullData(struct thread_data *td) { - null_init(td, &impl_); + impl_ = null_init(td); + assert(impl_); } ~NullData() @@ -211,6 +210,7 @@ struct NullData { return null_open(impl_, f); } +private: struct null_data *impl_; };