summaryrefslogtreecommitdiffstats
path: root/src/H5PLint.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5PLint.c')
-rw-r--r--src/H5PLint.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/H5PLint.c b/src/H5PLint.c
index b190746..166b300 100644
--- a/src/H5PLint.c
+++ b/src/H5PLint.c
@@ -30,6 +30,7 @@
#include "H5Eprivate.h" /* Error handling */
#include "H5MMprivate.h" /* Memory management */
#include "H5PLpkg.h" /* Plugin */
+#include "H5VLprivate.h" /* Virtual Object Layer */
#include "H5Zprivate.h" /* Filter pipeline */
@@ -250,6 +251,10 @@ H5PL_load(H5PL_type_t type, H5PL_key_t key)
if ((H5PL_plugin_control_mask_g & H5PL_FILTER_PLUGIN) == 0)
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTLOAD, NULL, "filter plugins disabled")
break;
+ case H5PL_TYPE_VOL:
+ if((H5PL_plugin_control_mask_g & H5PL_VOL_PLUGIN) == 0)
+ HGOTO_ERROR(H5E_PLUGIN, H5E_CANTLOAD, NULL, "Virtual Object Layer (VOL) driver plugins disabled")
+ break;
case H5PL_TYPE_ERROR:
case H5PL_TYPE_NONE:
default:
@@ -352,6 +357,22 @@ H5PL__open(const char *path, H5PL_type_t type, H5PL_key_t key, hbool_t *success,
break;
}
+ case H5PL_TYPE_VOL:
+ {
+ const H5VL_class_t *cls = NULL;
+
+ /* Get the plugin info */
+ if (NULL == (cls = (const H5VL_class_t *)(*get_plugin_info)()))
+ HGOTO_ERROR(H5E_PLUGIN, H5E_CANTGET, FAIL, "can't get VOL driver info from plugin")
+
+ /* If the plugin names match, we're done. Set the output parameters. */
+ if (cls->name && !HDstrcmp(cls->name, key.name)) {
+ *plugin_info = (const void *)cls;
+ *success = TRUE;
+ }
+
+ break;
+ }
case H5PL_TYPE_ERROR:
case H5PL_TYPE_NONE:
default: