summaryrefslogtreecommitdiffstats
path: root/src/H5FDpublic.h
diff options
context:
space:
mode:
authorjhendersonHDF <jhenderson@hdfgroup.org>2021-09-30 04:00:24 (GMT)
committerGitHub <noreply@github.com>2021-09-30 04:00:24 (GMT)
commit5b5f0c08c9f15bb1740208de67d9242463fa0cb4 (patch)
treecd5784d67bec559dc5bbe840c1b9fceacc72f867 /src/H5FDpublic.h
parent3da0802c40d58759995916bf9d0880e19f0af44d (diff)
downloadhdf5-5b5f0c08c9f15bb1740208de67d9242463fa0cb4.zip
hdf5-5b5f0c08c9f15bb1740208de67d9242463fa0cb4.tar.gz
hdf5-5b5f0c08c9f15bb1740208de67d9242463fa0cb4.tar.bz2
Update compact dataset I/O routines to handle driver-level memory copy (#1054)
* Update compact dataset I/O routines to handle driver-level memory copy * Combine compact I/O read/write struct into single I/O struct Rename CTL memory copy flag and H5Fquery routine to get file driver structure * Add RELEASE.txt entry for new "ctl" memory copy operation
Diffstat (limited to 'src/H5FDpublic.h')
-rw-r--r--src/H5FDpublic.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/H5FDpublic.h b/src/H5FDpublic.h
index a72dc80..d774210 100644
--- a/src/H5FDpublic.h
+++ b/src/H5FDpublic.h
@@ -170,6 +170,14 @@
* enabled may be used as the Write-Only (W/O) channel driver.
*/
#define H5FD_FEAT_DEFAULT_VFD_COMPATIBLE 0x00008000
+/*
+ * Defining H5FD_FEAT_MEMMANAGE for a VFL driver means that
+ * the driver uses special memory management routines or wishes
+ * to do memory management in a specific manner. Therefore, HDF5
+ * should request that the driver handle any memory management
+ * operations when appropriate.
+ */
+#define H5FD_FEAT_MEMMANAGE 0x00010000
/* ctl function definitions: */
#define H5FD_CTL_OPC_RESERVED 512 /* Opcodes below this value are reserved for library use */
@@ -185,6 +193,9 @@
#define H5FD_CTL__GET_MPI_COMMUNICATOR_OPCODE 2
#define H5FD_CTL__GET_MPI_RANK_OPCODE 3
#define H5FD_CTL__GET_MPI_SIZE_OPCODE 4
+#define H5FD_CTL__MEM_ALLOC 5
+#define H5FD_CTL__MEM_FREE 6
+#define H5FD_CTL__MEM_COPY 7
/* ctl function flags: */
@@ -367,6 +378,19 @@ typedef struct {
} H5FD_file_image_callbacks_t;
//! <!-- [H5FD_file_image_callbacks_t_snip] -->
+/**
+ * Define structure to hold "ctl memory copy" parameters
+ */
+//! <!-- [H5FD_ctl_memcpy_args_t_snip] -->
+typedef struct H5FD_ctl_memcpy_args_t {
+ void * dstbuf; /**< Destination buffer */
+ hsize_t dst_off; /**< Offset within destination buffer */
+ const void *srcbuf; /**< Source buffer */
+ hsize_t src_off; /**< Offset within source buffer */
+ size_t len; /**< Length of data to copy from source buffer */
+} H5FD_ctl_memcpy_args_t;
+//! <!-- [H5FD_ctl_memcpy_args_t_snip] -->
+
/********************/
/* Public Variables */
/********************/