X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;ds=sidebyside;f=init.c;h=624814ade9eae5ba55dcf493d2914005cb7e0222;hb=7b395ca5d5f38d50f0c9d4c11fb2b51760caf119;hp=fb3e3ccf9f893d39d445b6a3e24edaad36f46965;hpb=e77fe33a06fc0aaccb5d14fe6d257b6313cbf2ef;p=fio.git diff --git a/init.c b/init.c index fb3e3ccf..624814ad 100644 --- a/init.c +++ b/init.c @@ -103,6 +103,7 @@ static struct fio_option options[] = { #ifdef FIO_HAVE_SYSLET { .ival = "syslet-rw", }, #endif + { .ival = "external", }, }, }, { @@ -1017,11 +1018,26 @@ static int str_mem_cb(void *data, const char *mem) return 0; } +/* External engines are specified by "external:name.o") */ +static const char *get_engine_name(const char *str) +{ + char *p = strstr(str, ":"); + + if (!p) + return str; + + p++; + strip_blank_front(&p); + strip_blank_end(p); + return p; +} + static int str_ioengine_cb(void *data, const char *str) { struct thread_data *td = data; + const char *name = get_engine_name(str); - td->io_ops = load_ioengine(td, str); + td->io_ops = load_ioengine(td, name); if (td->io_ops) return 0;