summaryrefslogtreecommitdiffstats
path: root/release_docs
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 /release_docs
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 'release_docs')
-rw-r--r--release_docs/RELEASE.txt42
1 files changed, 42 insertions, 0 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 0c3a398..ec558c6 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -469,6 +469,48 @@ New Features
Library:
--------
+ - Adds new file driver-level memory copy operation for
+ "ctl" callback and updates compact dataset I/O routines
+ to utilize it
+
+ When accessing an HDF5 file with a file driver that uses
+ memory allocated in special ways (e.g., without standard
+ library's `malloc`), a crash could be observed when HDF5
+ tries to perform `memcpy` operations on such a memory
+ region.
+
+ These changes add a new H5FD_FEAT_MEMMANAGE VFD feature
+ flag, which, if specified as supported by a VFD, will
+ inform HDF5 that the VFD either uses special memory
+ management routines or wishes to perform memory management
+ in a specific way. Therefore, this flag instructs HDF5 to
+ ask the file driver to perform memory management for
+ certain operations.
+
+ These changes also introduce a new "ctl" callback
+ operation identified by the H5FD_CTL__MEM_COPY op code.
+ This operation simply asks a VFD to perform a memory copy.
+ The arguments to this operation are passed to the "ctl"
+ callback's "input" parameter as a pointer to a struct
+ defined as:
+
+ 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;
+
+ Further, HDF5's compact dataset I/O routines were
+ identified as a problematic area that could cause a crash
+ for VFDs that make use of special memory management. Those
+ I/O routines were therefore updated to make use of this new
+ "ctl" callback operation in order to ask the underlying
+ file driver to correctly handle memory copies.
+
+ (JTH - 2021/09/28)
+
- Adds new "ctl" callback to VFD H5FD_class_t structure
with the following prototype: