summaryrefslogtreecommitdiffstats
path: root/src/H5FDpublic.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2011-04-21 11:53:45 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2011-04-21 11:53:45 (GMT)
commit7c921910d079b49107e50bf7dda97c73cb66b19d (patch)
treee9eb9fb5bab36c65a0eeba037f0a3948090b3a6c /src/H5FDpublic.h
parentffed1cd0cf5703947e2928301a716085b47e8a1d (diff)
downloadhdf5-7c921910d079b49107e50bf7dda97c73cb66b19d.zip
hdf5-7c921910d079b49107e50bf7dda97c73cb66b19d.tar.gz
hdf5-7c921910d079b49107e50bf7dda97c73cb66b19d.tar.bz2
[svn-r20587] Description:
Initial commit of John Biddescomb's VFD & MPI tweaks. Tested on: None (yet) (h5committest not required for this branch)
Diffstat (limited to 'src/H5FDpublic.h')
-rw-r--r--src/H5FDpublic.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/H5FDpublic.h b/src/H5FDpublic.h
index c8ec658..2a22958 100644
--- a/src/H5FDpublic.h
+++ b/src/H5FDpublic.h
@@ -25,6 +25,7 @@
#define H5_HAVE_VFL 1 /*define a convenient app feature test*/
#define H5FD_VFD_DEFAULT 0 /* Default VFL driver value */
+#define H5_HAVE_VFD_EXTENSIONS 1 /*Extensions to VFD to allow external VFD linking */
/* Types of allocation requests: see H5Fpublic.h */
typedef enum H5F_mem_t H5FD_mem_t;
@@ -209,8 +210,19 @@ typedef enum H5F_mem_t H5FD_mem_t;
* the handle for the VFD (returned with the 'get_handle' callback) is
* of type 'int' and is compatible with POSIX I/O calls.
*/
-#define H5FD_FEAT_POSIX_COMPAT_HANDLE 0x00000080
-
+#define H5FD_FEAT_POSIX_COMPAT_HANDLE 0x00000080
+ /*
+ * Defining the H5FD_FEAT_HAS_MPI for a VFL driver means that
+ * the driver makes use of MPI communication and code may retrieve
+ * communicator/rank information from it
+ */
+#define H5FD_FEAT_HAS_MPI 0x00000100
+ /*
+ * Defining the H5FD_FEAT_ALLOCATE_EARLY for a VFL driver means that
+ * the library will use the H5D_ALLOC_TIME_EARLY on dataset create
+ * instead of the default H5D_ALLOC_TIME_LATE
+ */
+#define H5FD_FEAT_ALLOCATE_EARLY 0x00000200
/* Forward declaration */
typedef struct H5FD_t H5FD_t;
@@ -240,6 +252,9 @@ typedef struct H5FD_class_t {
haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size);
herr_t (*free)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id,
haddr_t addr, hsize_t size);
+#ifdef H5_HAVE_VFD_EXTENSIONS
+ void (*terminate)();
+#endif
haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type);
herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr);
haddr_t (*get_eof)(const H5FD_t *file);