summaryrefslogtreecommitdiffstats
path: root/src/H5VLpublic.h
diff options
context:
space:
mode:
authorDana Robinson <43805+derobins@users.noreply.github.com>2022-09-17 16:49:38 (GMT)
committerGitHub <noreply@github.com>2022-09-17 16:49:38 (GMT)
commit6d89634445eb70cc5fb2f29e2c8ea21eebf4436d (patch)
tree47125fcfdf46020e947972094a3df30e84fc511d /src/H5VLpublic.h
parenta9d8b469f46d2f5de7521b986d2e14725e081eb9 (diff)
downloadhdf5-6d89634445eb70cc5fb2f29e2c8ea21eebf4436d.zip
hdf5-6d89634445eb70cc5fb2f29e2c8ea21eebf4436d.tar.gz
hdf5-6d89634445eb70cc5fb2f29e2c8ea21eebf4436d.tar.bz2
Updates VOL capabilities flags (#2105)
* Added feature/vol_cap_flags branch to GitHub actions * Convert unsigned cap flag field to uint64_t and add flags * Committing clang-format changes * Convert unsigned cap flag field to uint64_t and add flags * Committing clang-format changes * Updates the VOL struct version number Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'src/H5VLpublic.h')
-rw-r--r--src/H5VLpublic.h42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/H5VLpublic.h b/src/H5VLpublic.h
index 543c3c8..c4bc5a7 100644
--- a/src/H5VLpublic.h
+++ b/src/H5VLpublic.h
@@ -34,7 +34,7 @@
* implements. The HDF5 library will reject connectors with
* incompatible structs.
*/
-#define H5VL_VERSION 2
+#define H5VL_VERSION 3
/* VOL connector identifier values
* These are H5VL_class_value_t values, NOT hid_t values!
@@ -60,6 +60,46 @@
*/
#define H5_VOL_MAX 65535
+/* Capability flags for connector */
+#define H5VL_CAP_FLAG_NONE 0x0000000000000000 /* No special connector capabilities */
+#define H5VL_CAP_FLAG_THREADSAFE 0x0000000000000001 /* Connector is threadsafe */
+#define H5VL_CAP_FLAG_ASYNC 0x0000000000000002 /* Connector performs operations asynchronously*/
+#define H5VL_CAP_FLAG_NATIVE_FILES 0x0000000000000004 /* Connector produces native file format */
+#define H5VL_CAP_FLAG_ATTR_BASIC 0x0000000000000008
+#define H5VL_CAP_FLAG_ATTR_MORE 0x0000000000000010
+#define H5VL_CAP_FLAG_DATASET_BASIC 0x0000000000000020
+#define H5VL_CAP_FLAG_DATASET_MORE 0x0000000000000040
+#define H5VL_CAP_FLAG_FILE_BASIC 0x0000000000000080
+#define H5VL_CAP_FLAG_FILE_MORE 0x0000000000000100
+#define H5VL_CAP_FLAG_GROUP_BASIC 0x0000000000000200
+#define H5VL_CAP_FLAG_GROUP_MORE 0x0000000000000400
+#define H5VL_CAP_FLAG_LINK_BASIC 0x0000000000000800
+#define H5VL_CAP_FLAG_LINK_MORE 0x0000000000001000
+#define H5VL_CAP_FLAG_MAP_BASIC 0x0000000000002000
+#define H5VL_CAP_FLAG_MAP_MORE 0x0000000000004000
+#define H5VL_CAP_FLAG_OBJECT_BASIC 0x0000000000008000
+#define H5VL_CAP_FLAG_OBJECT_MORE 0x0000000000010000
+#define H5VL_CAP_FLAG_REF_BASIC 0x0000000000020000
+#define H5VL_CAP_FLAG_REF_MORE 0x0000000000040000
+#define H5VL_CAP_FLAG_OBJ_REF 0x0000000000080000
+#define H5VL_CAP_FLAG_REG_REF 0x0000000000100000
+#define H5VL_CAP_FLAG_ATTR_REF 0x0000000000200000
+#define H5VL_CAP_FLAG_STORED_DATATYPES 0x0000000000400000
+#define H5VL_CAP_FLAG_CREATION_ORDER 0x0000000000800000
+#define H5VL_CAP_FLAG_ITERATE 0x0000000001000000
+#define H5VL_CAP_FLAG_STORAGE_SIZE 0x0000000002000000
+#define H5VL_CAP_FLAG_BY_IDX 0x0000000004000000
+#define H5VL_CAP_FLAG_GET_PLIST 0x0000000008000000
+#define H5VL_CAP_FLAG_FLUSH_REFRESH 0x0000000010000000
+#define H5VL_CAP_FLAG_EXTERNAL_LINKS 0x0000000020000000
+#define H5VL_CAP_FLAG_HARD_LINKS 0x0000000040000000
+#define H5VL_CAP_FLAG_SOFT_LINKS 0x0000000080000000
+#define H5VL_CAP_FLAG_UD_LINKS 0x0000000100000000
+#define H5VL_CAP_FLAG_TRACK_TIMES 0x0000000200000000
+#define H5VL_CAP_FLAG_MOUNT 0x0000000400000000
+#define H5VL_CAP_FLAG_FILTERS 0x0000000800000000
+#define H5VL_CAP_FLAG_FILL_VALUES 0x0000001000000000
+
/* Flags to return from H5VLquery_optional API and 'opt_query' callbacks */
/* Note: Operations which access multiple objects' data or metadata in a
* container should be registered as file-level optional operations.