From a32f45dfda9daa8b72a44cda7f4f90072178d8be Mon Sep 17 00:00:00 2001 From: Mohamad Chaarawi Date: Thu, 19 Apr 2012 13:40:48 -0500 Subject: [svn-r22298] fix an error in H5Dget_offset update the H5R routines to use the VOL --- src/H5R.c | 60 +++++++++----------------------------- src/H5Rdeprec.c | 9 ++---- src/H5Rpkg.h | 7 ++++- src/H5VLnative.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++-- src/H5VLpublic.h | 87 ++++++++++++++++++++++++++++++-------------------------- 5 files changed, 141 insertions(+), 97 deletions(-) diff --git a/src/H5R.c b/src/H5R.c index a8b2f1b..385aa83 100644 --- a/src/H5R.c +++ b/src/H5R.c @@ -36,13 +36,6 @@ /* Number of reserved IDs in ID group */ #define H5R_RESERVED_ATOMS 0 -/* Static functions */ -static herr_t H5R_create(void *ref, H5G_loc_t *loc, const char *name, - H5R_type_t ref_type, H5S_t *space, hid_t dxpl_id); -static H5S_t * H5R_get_region(H5F_t *file, hid_t dxpl_id, const void *_ref); -static ssize_t H5R_get_name(H5F_t *file, hid_t lapl_id, hid_t dxpl_id, hid_t id, - H5R_type_t ref_type, const void *_ref, char *name, size_t size); - /*------------------------------------------------------------------------- * Function: H5R_init @@ -163,7 +156,7 @@ H5R_term_interface(void) EXAMPLES REVISION LOG --------------------------------------------------------------------------*/ -static herr_t +herr_t H5R_create(void *_ref, H5G_loc_t *loc, const char *name, H5R_type_t ref_type, H5S_t *space, hid_t dxpl_id) { H5G_loc_t obj_loc; /* Group hier. location of object */ @@ -307,8 +300,6 @@ done: herr_t H5Rcreate(void *ref, hid_t loc_id, const char *name, H5R_type_t ref_type, hid_t space_id) { - H5G_loc_t loc; /* File location */ - H5S_t *space = NULL; /* Pointer to dataspace containing region */ herr_t ret_value; /* Return value */ FUNC_ENTER_API(FAIL) @@ -317,8 +308,6 @@ H5Rcreate(void *ref, hid_t loc_id, const char *name, H5R_type_t ref_type, hid_t /* Check args */ if(ref == NULL) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer") - if(H5G_loc(loc_id, &loc) < 0) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location") if(!name || !*name) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name given") if(ref_type <= H5R_BADTYPE || ref_type >= H5R_MAXTYPE) @@ -327,12 +316,10 @@ H5Rcreate(void *ref, hid_t loc_id, const char *name, H5R_type_t ref_type, hid_t HGOTO_ERROR(H5E_ARGS, H5E_UNSUPPORTED, FAIL, "reference type not supported") if(space_id == (-1) && ref_type == H5R_DATASET_REGION) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "reference region dataspace id must be valid") - if(space_id != (-1) && (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace") - /* Create reference */ - if((ret_value = H5R_create(ref, &loc, name, ref_type, space, H5AC_dxpl_id)) < 0) - HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to create reference") + /* create the ref through the VOL */ + if(H5VL_object_generic(loc_id, H5VL_REF_CREATE, ref, name, ref_type, space_id) < 0) + HGOTO_ERROR(H5E_OHDR, H5E_LINKCOUNT, FAIL, "modifying object link count failed") done: FUNC_LEAVE_API(ret_value) @@ -573,7 +560,7 @@ done: EXAMPLES REVISION LOG --------------------------------------------------------------------------*/ -static H5S_t * +H5S_t * H5R_get_region(H5F_t *file, hid_t dxpl_id, const void *_ref) { H5O_loc_t oloc; /* Object location */ @@ -647,28 +634,20 @@ done: hid_t H5Rget_region(hid_t id, H5R_type_t ref_type, const void *ref) { - H5G_loc_t loc; /* Object's group location */ - H5S_t *space = NULL; /* Dataspace object */ hid_t ret_value; FUNC_ENTER_API(FAIL) H5TRACE3("i", "iRt*x", id, ref_type, ref); /* Check args */ - if(H5G_loc(id, &loc) < 0) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location") if(ref_type != H5R_DATASET_REGION) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference type") if(ref == NULL) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer") - /* Get the dataspace with the correct region selected */ - if((space = H5R_get_region(loc.oloc->file, H5AC_ind_dxpl_id, ref)) == NULL) - HGOTO_ERROR(H5E_REFERENCE, H5E_CANTCREATE, FAIL, "unable to create dataspace") - - /* Atomize */ - if((ret_value = H5I_register (H5I_DATASPACE, space, TRUE)) < 0) - HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register dataspace atom") + /* Get the space id through the VOL */ + if(H5VL_object_get(id, H5VL_REF_GET_REGION, &ret_value, ref_type, ref) < 0) + HGOTO_ERROR(H5E_INTERNAL, H5E_CANTGET, FAIL, "unable to get group info") done: FUNC_LEAVE_API(ret_value) @@ -788,23 +767,20 @@ herr_t H5Rget_obj_type2(hid_t id, H5R_type_t ref_type, const void *ref, H5O_type_t *obj_type) { - H5G_loc_t loc; /* Object location */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) H5TRACE4("e", "iRt*x*Ot", id, ref_type, ref, obj_type); /* Check args */ - if(H5G_loc(id, &loc) < 0) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location") if(ref_type <= H5R_BADTYPE || ref_type >= H5R_MAXTYPE) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference type") if(ref == NULL) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer") - /* Get the object information */ - if(H5R_get_obj_type(loc.oloc->file, H5AC_ind_dxpl_id, ref_type, ref, obj_type) < 0) - HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object type") + /* get the object type through the VOL */ + if((ret_value = H5VL_object_get(id, H5VL_REF_GET_TYPE, obj_type, ref_type, ref)) < 0) + HGOTO_ERROR(H5E_INTERNAL, H5E_CANTGET, FAIL, "unable to get group info") done: FUNC_LEAVE_API(ret_value) @@ -941,28 +917,20 @@ ssize_t H5Rget_name(hid_t id, H5R_type_t ref_type, const void *_ref, char *name, size_t size) { - H5G_loc_t loc; /* Group location */ - H5F_t *file; /* File object */ ssize_t ret_value; /* Return value */ FUNC_ENTER_API(FAIL) H5TRACE5("Zs", "iRt*x*sz", id, ref_type, _ref, name, size); /* Check args */ - if(H5G_loc(id, &loc) < 0) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location") if(ref_type <= H5R_BADTYPE || ref_type >= H5R_MAXTYPE) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference type") if(_ref == NULL) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid reference pointer") - /* Get the file pointer from the entry */ - file = loc.oloc->file; - - /* Get name */ - if((ret_value = H5R_get_name(file, H5P_DEFAULT, H5AC_dxpl_id, id, ref_type, _ref, name, size)) < 0) - HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object path") - + /* get the object type through the VOL */ + if(H5VL_object_get(id, H5VL_REF_GET_NAME, &ret_value, name, size, ref_type, _ref) < 0) + HGOTO_ERROR(H5E_INTERNAL, H5E_CANTGET, FAIL, "unable to get group info") done: FUNC_LEAVE_API(ret_value) } /* end H5Rget_name() */ diff --git a/src/H5Rdeprec.c b/src/H5Rdeprec.c index bf75a0a..ca27833 100644 --- a/src/H5Rdeprec.c +++ b/src/H5Rdeprec.c @@ -133,7 +133,6 @@ H5R_init_deprec_interface(void) H5G_obj_t H5Rget_obj_type1(hid_t id, H5R_type_t ref_type, const void *ref) { - H5G_loc_t loc; /* Object location */ H5O_type_t obj_type; /* Object type */ H5G_obj_t ret_value; /* Return value */ @@ -141,16 +140,14 @@ H5Rget_obj_type1(hid_t id, H5R_type_t ref_type, const void *ref) H5TRACE3("Go", "iRt*x", id, ref_type, ref); /* Check args */ - if(H5G_loc(id, &loc) < 0) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, H5G_UNKNOWN, "not a location") if(ref_type <= H5R_BADTYPE || ref_type >= H5R_MAXTYPE) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, H5G_UNKNOWN, "invalid reference type") if(ref == NULL) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, H5G_UNKNOWN, "invalid reference pointer") - /* Get the object information */ - if(H5R_get_obj_type(loc.oloc->file, H5AC_ind_dxpl_id, ref_type, ref, &obj_type) < 0) - HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, H5G_UNKNOWN, "unable to determine object type") + /* get the object type through the VOL */ + if((ret_value = H5VL_object_get(id, H5VL_REF_GET_TYPE, &obj_type, ref_type, ref)) < 0) + HGOTO_ERROR(H5E_INTERNAL, H5E_CANTGET, FAIL, "unable to get group info") /* Set return value */ ret_value = H5G_map_obj_type(obj_type); diff --git a/src/H5Rpkg.h b/src/H5Rpkg.h index 8c66a90..23de6b6 100644 --- a/src/H5Rpkg.h +++ b/src/H5Rpkg.h @@ -33,6 +33,7 @@ /* Other private headers needed by this file */ #include "H5Fprivate.h" /* File access */ +#include "H5Sprivate.h" /* Dataspaces */ /**************************/ /* Package Private Macros */ @@ -59,7 +60,11 @@ H5_DLL herr_t H5R_get_obj_type(H5F_t *file, hid_t dxpl_id, H5R_type_t ref_type, const void *_ref, H5O_type_t *obj_type); H5_DLL hid_t H5R_dereference(H5F_t *file, hid_t dapl_id, hid_t dxpl_id, H5R_type_t ref_type, const void *_ref, hbool_t app_ref); - +H5_DLL herr_t H5R_create(void *ref, H5G_loc_t *loc, const char *name, + H5R_type_t ref_type, H5S_t *space, hid_t dxpl_id); +H5_DLL H5S_t * H5R_get_region(H5F_t *file, hid_t dxpl_id, const void *_ref); +H5_DLL ssize_t H5R_get_name(H5F_t *file, hid_t lapl_id, hid_t dxpl_id, hid_t id, + H5R_type_t ref_type, const void *_ref, char *name, size_t size); #endif /* _H5Rpkg_H */ diff --git a/src/H5VLnative.c b/src/H5VLnative.c index efb7822..57710d9 100644 --- a/src/H5VLnative.c +++ b/src/H5VLnative.c @@ -27,6 +27,7 @@ #define H5G_PACKAGE /*suppress error about including H5Gpkg */ #define H5L_PACKAGE /*suppress error about including H5Lpkg */ #define H5O_PACKAGE /*suppress error about including H5Opkg */ +#define H5R_PACKAGE /*suppress error about including H5Rpkg */ #define H5T_PACKAGE /*suppress error about including H5Tpkg */ /* Interface initialization */ @@ -50,6 +51,7 @@ #include "H5MMprivate.h" /* Memory management */ #include "H5Opkg.h" /* Object headers */ #include "H5Pprivate.h" /* Property lists */ +#include "H5Rpkg.h" /* References */ #include "H5SMprivate.h" /* Shared Object Header Messages */ #include "H5Tpkg.h" /* Datatypes */ #include "H5VLprivate.h" /* VOL plugins */ @@ -1177,8 +1179,7 @@ H5VL_native_dataset_get(hid_t id, H5VL_dataset_get_t get_type, va_list arguments /* Set return value */ *ret = H5D__get_offset(dset); if(!H5F_addr_defined(*ret)) - HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, HADDR_UNDEF, "unable to get space status") - + *ret = HADDR_UNDEF; break; } default: @@ -2507,7 +2508,7 @@ H5VL_native_object_lookup(hid_t loc_id, H5VL_object_lookup_t lookup_type, va_lis case H5R_BADTYPE: case H5R_MAXTYPE: default: - HDassert("unknown reference type" && 0); + //HDassert("unknown reference type" && 0); HGOTO_ERROR(H5E_REFERENCE, H5E_UNSUPPORTED, FAIL, "internal error (unknown reference type)") } /* end switch */ break; @@ -2686,6 +2687,26 @@ H5VL_native_object_generic(hid_t loc_id, H5VL_object_generic_t generic_type, va_ HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "object not found") break; } + case H5VL_REF_CREATE: + { + void *ref = va_arg (arguments, void *); + const char *name = va_arg (arguments, char *); + H5R_type_t ref_type = va_arg (arguments, H5R_type_t); + hid_t space_id = va_arg (arguments, hid_t); + H5G_loc_t loc; /* File location */ + H5S_t *space = NULL; /* Pointer to dataspace containing region */ + + if(H5G_loc(loc_id, &loc) < 0) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location") + if(space_id != (-1) && (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace") + + /* Create reference */ + if((ret_value = H5R_create(ref, &loc, name, ref_type, space, H5AC_dxpl_id)) < 0) + HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to create reference") + + break; + } default: HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "can't recognize this operation type") } @@ -2762,6 +2783,54 @@ H5VL_native_object_get(hid_t id, H5VL_object_get_t get_type, va_list arguments) break; } + /* H5Rget_region */ + case H5VL_REF_GET_REGION: + { + hid_t *ret = va_arg (arguments, hid_t *); + H5R_type_t ref_type = va_arg (arguments, H5R_type_t); + void *ref = va_arg (arguments, void *); + H5S_t *space = NULL; /* Dataspace object */ + + /* Get the dataspace with the correct region selected */ + if((space = H5R_get_region(loc.oloc->file, H5AC_ind_dxpl_id, ref)) == NULL) + HGOTO_ERROR(H5E_REFERENCE, H5E_CANTCREATE, FAIL, "unable to create dataspace") + + /* Atomize */ + if((*ret = H5I_register (H5I_DATASPACE, space, TRUE)) < 0) + HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register dataspace atom") + + break; + } + /* H5Rget_obj_type2 */ + case H5VL_REF_GET_TYPE: + { + H5O_type_t *obj_type = va_arg (arguments, H5O_type_t *); + H5R_type_t ref_type = va_arg (arguments, H5R_type_t); + void *ref = va_arg (arguments, void *); + + /* Get the object information */ + if(H5R_get_obj_type(loc.oloc->file, H5AC_ind_dxpl_id, ref_type, ref, obj_type) < 0) + HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object type") + break; + } + /* H5Rget_name */ + case H5VL_REF_GET_NAME: + { + ssize_t *ret = va_arg (arguments, ssize_t *); + char *name = va_arg (arguments, char *); + size_t size = va_arg (arguments, size_t); + H5R_type_t ref_type = va_arg (arguments, H5R_type_t); + void *ref = va_arg (arguments, void *); + H5F_t *file; /* File object */ + + /* Get the file pointer from the entry */ + file = loc.oloc->file; + + /* Get name */ + if((*ret = H5R_get_name(file, H5P_DEFAULT, H5AC_dxpl_id, id, ref_type, ref, name, size)) < 0) + HGOTO_ERROR(H5E_REFERENCE, H5E_CANTINIT, FAIL, "unable to determine object path") + break; + } default: HGOTO_ERROR(H5E_VOL, H5E_CANTGET, FAIL, "can't get this type of information from object") } diff --git a/src/H5VLpublic.h b/src/H5VLpublic.h index 645b410..8c9302b 100644 --- a/src/H5VLpublic.h +++ b/src/H5VLpublic.h @@ -26,29 +26,6 @@ #include "H5Fpublic.h" #include "H5Lpublic.h" -/* types for all file get API routines */ -typedef enum H5VL_file_get_t { - H5VL_FILE_GET_FAPL = 0, /*file access property list */ - H5VL_FILE_GET_FCPL = 1, /*file creation property list */ - H5VL_FILE_GET_SIZE = 2, /*file size */ - H5VL_FILE_GET_FREE_SPACE = 3, /*file freespace */ - H5VL_FILE_GET_INFO = 4, /*file info */ - H5VL_FILE_GET_INTENT = 5, /*file intent */ - H5VL_FILE_GET_NAME = 6, /*file name */ - H5VL_FILE_GET_OBJ_COUNT = 7, /*object count in file */ - H5VL_FILE_GET_OBJ_IDS = 8, /*object ids in file */ - H5VL_FILE_GET_MDC_CONF = 9, /*file metadata cache configuration */ - H5VL_FILE_GET_MDC_HR = 10, /*file metadata cache hit rate */ - H5VL_FILE_GET_MDC_SIZE = 11, /*file metadata cache size */ - H5VL_FILE_GET_FREE_SECTIONS = 12 /*file free selections */ -} H5VL_file_get_t; - -/* types for all file general operations */ -typedef enum H5VL_file_generic_t { - H5VL_FILE_GET_VFD_HANDLE = 0, /*file VFD handle */ - H5VL_FILE_IS_HDF5 = 1 /* is HDF5? */ -} H5VL_file_generic_t; - /* types for all attr get API routines */ typedef enum H5VL_attr_get_t { H5VL_ATTR_GET_SPACE = 0, /* dataspace */ @@ -70,12 +47,42 @@ typedef enum H5VL_dataset_get_t { H5VL_DATASET_GET_OFFSET = 6 /* offset */ } H5VL_dataset_get_t; +/* types for all file general operations */ +typedef enum H5VL_file_generic_t { + H5VL_FILE_GET_VFD_HANDLE = 0, /*file VFD handle */ + H5VL_FILE_IS_HDF5 = 1 /* is HDF5? */ +} H5VL_file_generic_t; + +/* types for all file get API routines */ +typedef enum H5VL_file_get_t { + H5VL_FILE_GET_FAPL = 0, /*file access property list */ + H5VL_FILE_GET_FCPL = 1, /*file creation property list */ + H5VL_FILE_GET_SIZE = 2, /*file size */ + H5VL_FILE_GET_FREE_SPACE = 3, /*file freespace */ + H5VL_FILE_GET_INFO = 4, /*file info */ + H5VL_FILE_GET_INTENT = 5, /*file intent */ + H5VL_FILE_GET_NAME = 6, /*file name */ + H5VL_FILE_GET_OBJ_COUNT = 7, /*object count in file */ + H5VL_FILE_GET_OBJ_IDS = 8, /*object ids in file */ + H5VL_FILE_GET_MDC_CONF = 9, /*file metadata cache configuration */ + H5VL_FILE_GET_MDC_HR = 10, /*file metadata cache hit rate */ + H5VL_FILE_GET_MDC_SIZE = 11, /*file metadata cache size */ + H5VL_FILE_GET_FREE_SECTIONS = 12 /*file free selections */ +} H5VL_file_get_t; + /* types for all group get API routines */ typedef enum H5VL_group_get_t { H5VL_GROUP_GET_GCPL = 0, /*group creation property list */ H5VL_GROUP_GET_INFO = 1 /*group info */ } H5VL_group_get_t; +/* link create types for VOL */ +typedef enum H5VL_link_create_type_t { + H5VL_CREATE_HARD_LINK = 0, + H5VL_CREATE_SOFT_LINK = 1, + H5VL_CREATE_UD_LINK = 2 +} H5VL_link_create_type_t; + /* types for all link get API routines */ typedef enum H5VL_link_get_t { H5VL_LINK_EXISTS = 0, /*link existence */ @@ -84,10 +91,25 @@ typedef enum H5VL_link_get_t { H5VL_LINK_GET_VAL = 3 /*link value */ } H5VL_link_get_t; +/* types for all object general operations */ +typedef enum H5VL_object_generic_t { + H5VL_ATTR_DELETE_BY_IDX = 0, /* H5Adelete_by_idx */ + H5VL_ATTR_EXISTS = 1, /* H5Aexists */ + H5VL_ATTR_OPEN_BY_IDX = 2, /* H5Aopen_by_idx */ + H5VL_ATTR_RENAME = 3, /* H5Arename */ + H5VL_OBJECT_CHANGE_REF_COUNT = 4, /* H5Oincr/decr_refcount */ + H5VL_OBJECT_EXISTS = 5, /* H5Oexists(_by_name) */ + H5VL_OBJECT_SET_COMMENT = 6, /* H5Oset_comment(_by_name) */ + H5VL_REF_CREATE = 7 /* H5Rcreate */ +} H5VL_object_generic_t; + /* types for all object get API routines */ typedef enum H5VL_object_get_t { H5VL_OBJECT_GET_INFO = 0, /*object info */ - H5VL_OBJECT_GET_COMMENT = 1 /*object comment */ + H5VL_OBJECT_GET_COMMENT = 1, /*object comment */ + H5VL_REF_GET_REGION = 2, /*dataspace of region */ + H5VL_REF_GET_TYPE = 3, /*type of object */ + H5VL_REF_GET_NAME = 4 /*object name */ } H5VL_object_get_t; /* types for all object lookup API routines */ @@ -99,23 +121,6 @@ typedef enum H5VL_object_lookup_t { H5VL_OBJECT_LOOKUP_BY_REF = 4 } H5VL_object_lookup_t; -/* types for all attr general operations */ -typedef enum H5VL_object_generic_t { - H5VL_ATTR_DELETE_BY_IDX = 0, /* H5Adelete_by_idx */ - H5VL_ATTR_EXISTS = 1, /* H5Aexists */ - H5VL_ATTR_OPEN_BY_IDX = 2, /* H5Aopen_by_idx */ - H5VL_ATTR_RENAME = 3, /* H5Arename */ - H5VL_OBJECT_CHANGE_REF_COUNT = 4, /* H5Oincr/decr_refcount */ - H5VL_OBJECT_EXISTS = 5, /* H5Oexists(_by_name) */ - H5VL_OBJECT_SET_COMMENT = 6 /* H5Oset_comment(_by_name) */ -} H5VL_object_generic_t; - -/* types for all object lookup API routines */ -typedef enum H5VL_link_create_type_t { - H5VL_CREATE_HARD_LINK = 0, - H5VL_CREATE_SOFT_LINK = 1, - H5VL_CREATE_UD_LINK = 2 -} H5VL_link_create_type_t; #define H5VL_VOL_DEFAULT 0 /* Default VOL plugin value */ -- cgit v0.12