+ ops = dlsym(dlhandle, engine_lib);
+ if (!ops)
+ ops = dlsym(dlhandle, "ioengine");
+
+ /*
+ * For some external engines (like C++ ones) it is not that trivial
+ * to provide a non-static ionengine structure that we can reference.
+ * Instead we call a method which allocates the required ioengine
+ * structure.
+ */
+ if (!ops) {
+ get_ioengine_t get_ioengine = dlsym(dlhandle, "get_ioengine");
+
+ if (get_ioengine)
+ get_ioengine(&ops);
+ }
+