X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Ffio-engine-splice.c;h=fa4a6ee1db21ff192d811f1a95dfacc05de35483;hp=192fbd00bffdf14184a249e481dbfc95ab4e7f07;hb=5f350952eff89948bfbf1eb6ac4d3d08a9109581;hpb=6040dabcaaf29ecea9c68735a4d3a6ad6411f573;ds=sidebyside diff --git a/engines/fio-engine-splice.c b/engines/fio-engine-splice.c index 192fbd00..fa4a6ee1 100644 --- a/engines/fio-engine-splice.c +++ b/engines/fio-engine-splice.c @@ -8,8 +8,11 @@ #include #include #include -#include "fio.h" -#include "os.h" + +#include "../fio.h" +#include "../os.h" + +#ifdef FIO_HAVE_SPLICE struct spliceio_data { struct io_u *last_io_u; @@ -179,7 +182,7 @@ static int fio_spliceio_init(struct thread_data *td) return 0; } -struct ioengine_ops ioengine = { +static struct ioengine_ops ioengine = { .name = "splice", .version = FIO_IOOPS_VERSION, .init = fio_spliceio_init, @@ -189,3 +192,34 @@ struct ioengine_ops ioengine = { .cleanup = fio_spliceio_cleanup, .flags = FIO_SYNCIO, }; + +#else /* FIO_HAVE_SPLICE */ + +/* + * 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_spliceio_init(struct thread_data fio_unused *td) +{ + fprintf(stderr, "fio: splice not available\n"); + return 1; +} + +static struct ioengine_ops ioengine = { + .name = "splice", + .version = FIO_IOOPS_VERSION, + .init = fio_spliceio_init, +}; + +#endif + +static void fio_init fio_spliceio_register(void) +{ + register_ioengine(&ioengine); +} + +static void fio_exit fio_spliceio_unregister(void) +{ + unregister_ioengine(&ioengine); +}