* #H5Z_FLAG_MANDATORY |
* If the filter is required, that is, set to mandatory,
- * and the filter fails, the library’s behavior depends
+ * and the filter fails, the library's behavior depends
* on whether the chunk cache is in use:
* \li If the chunk cache is enabled, data chunks will
* be flushed to the file during H5Dclose() and the
@@ -2391,11 +2483,11 @@ H5_DLL herr_t H5Pset_deflate(hid_t plist_id, unsigned level);
* property list, the group will be created with the new group file
* format. The filters will come into play only when dense storage
* is used (see H5Pset_link_phase_change()) and will be applied to
- * the group’s fractal heap. The fractal heap will contain most of
- * the the group’s link metadata, including link names.
+ * the group's fractal heap. The fractal heap will contain most of
+ * the group's link metadata, including link names.
*
* \note When working with group creation property lists, if you are
- * adding a filter that is not in HDF5’s set of predefined filters,
+ * adding a filter that is not in HDF5's set of predefined filters,
* i.e., a user-defined or third-party filter, you must first
* determine that the filter will work for a group. See the
* discussion of the set local and can apply callback functions
@@ -3241,7 +3333,7 @@ H5_DLL herr_t H5Pget_cache(hid_t plist_id, int *mdc_nelmts, /* out */
* after the call to H5Pset_fapl_core(). It is an error to use this
* function with any other VFD.
*
- * \note This function only applies to the backing store write operation
+ * \note This function only applies to the backing store write operation,
* which typically occurs when the file is flushed or closed. This
* function has no relationship to the increment parameter passed
* to H5Pset_fapl_core().
@@ -3269,102 +3361,7 @@ H5_DLL herr_t H5Pget_core_write_tracking(hid_t fapl_id, hbool_t *is_enabled, siz
* Valid driver identifiers distributed with HDF5 are listed and
* described in the following table.
*
- *
- *
- * Driver Name |
- * Driver Identifier |
- * Description |
- * Related Function |
- *
- *
- * POSIX |
- * #H5FD_SEC2 |
- * This driver uses POSIX file-system functions like read and
- * write to perform I/O to a single, permanent file on local disk
- * with no system buffering. This driver is POSIX-compliant and
- * is the default file driver for all systems. |
- * H5Pset_fapl_sec2() |
- *
- *
- * Direct |
- * #H5FD_DIRECT |
- * This is the #H5FD_SEC2 driver except data is written to or
- * read from the file synchronously without being cached by the
- * system. |
- * H5Pset_fapl_direct() |
- *
- *
- * Log |
- * #H5FD_LOG |
- * This is the #H5FD_SEC2 driver with logging capabilities. |
- * H5Pset_fapl_log() |
- *
- *
- * Windows |
- * #H5FD_WINDOWS |
- * This driver was modified in HDF5-1.8.8 to be a wrapper of the
- * POSIX driver, #H5FD_SEC2. This change should not affect user
- * applications. |
- * H5Pset_fapl_windows() |
- *
- *
- * STDIO |
- * #H5FD_STDIO |
- * This driver uses functions from the standard C stdio.h to
- * perform I/O to a single, permanent file on local disk with
- * additional system buffering. |
- * H5Pset_fapl_stdio() |
- *
- *
- * Memory |
- * #H5FD_CORE |
- * With this driver, an application can work with a file in
- * memory for faster reads and writes. File contents are kept in
- * memory until the file is closed. At closing, the memory
- * version of the file can be written back to disk or abandoned.
- * |
- * H5Pset_fapl_core() |
- *
- *
- * Family |
- * #H5FD_FAMILY |
- * With this driver, the HDF5 file’s address space is partitioned
- * into pieces and sent to separate storage files using an
- * underlying driver of the user’s choice. This driver is for
- * systems that do not support files larger than 2 gigabytes.
- * |
- * H5Pset_fapl_family() |
- *
- *
- * Multi |
- * #H5FD_MULTI |
- * With this driver, data can be stored in multiple files
- * according to the type of the data. I/O might work better if
- * data is stored in separate files based on the type of data.
- * The Split driver is a special case of this driver. |
- * H5Pset_fapl_multi() |
- *
- *
- * Parallel |
- * #H5FD_MPIO |
- * This is the standard HDF5 file driver for parallel file
- * systems. This driver uses the MPI standard for both
- * communication and file I/O. |
- * H5Pset_fapl_mpio() |
- *
- *
- * Parallel POSIX |
- * H5FD_MPIPOSIX |
- * This driver is no longer available. |
- * |
- *
- *
- * Stream |
- * H5FD_STREAM |
- * This driver is no longer available. |
- * |
- *
- *
+ * \snippet{doc} tables/fileDriverLists.dox supported_file_driver_table
*
* This list does not include custom drivers that might be
* defined and registered by a user.
@@ -3415,6 +3412,34 @@ H5_DLL hid_t H5Pget_driver(hid_t plist_id);
*
*/
H5_DLL const void *H5Pget_driver_info(hid_t plist_id);
+/**
+ * \ingroup FAPL
+ *
+ * \brief Retrieves a string representation of the configuration for
+ * the driver set on the given FAPL. The returned string can
+ * be used to configure the same driver in an identical way.
+ *
+ * \fapl_id
+ * \param[out] config_buf Driver configuration string output buffer
+ * \param[in] buf_size Size of driver configuration string output buffer
+ *
+ * \return Returns the length of the driver configuration string on
+ * success (not including the NUL terminator). Returns negative
+ * on failure.
+ *
+ * \details H5Pget_driver_config_str() retrieves a string representation
+ * of the configuration for the driver set on the given FAPL. The
+ * returned string can be used to configure the same driver in
+ * an identical way.
+ *
+ * If \p config_buf is NULL, the length of the driver configuration
+ * string is simply returned. The caller can then allocate a buffer
+ * of the appropriate size and call this routine again.
+ *
+ * \version 1.14.0 Function publicized in this release.
+ *
+ */
+H5_DLL ssize_t H5Pget_driver_config_str(hid_t fapl_id, char *config_buf, size_t buf_size);
/**
* \ingroup FAPL
*
@@ -3532,7 +3557,7 @@ H5_DLL herr_t H5Pget_fclose_degree(hid_t fapl_id, H5F_close_degree_t *degree);
* them when allocating and loading the buffer to return to the
* application (see H5Pset_file_image_callbacks()). If file image
* callbacks are not defined, the function will use \c malloc and \c
- * memcpy. When \c malloc and \c memcpy are used, it is the caller’s
+ * memcpy. When \c malloc and \c memcpy are used, it is the caller's
* responsibility to discard the returned buffer with a call to \c
* free.
*
@@ -3854,13 +3879,13 @@ H5_DLL herr_t H5Pget_meta_block_size(hid_t fapl_id, hsize_t *size);
*
* The second example illustrates the two cases for retrieving the
* number of read attempts from the file access property list of a file
- * opened with SWMR acccess.
+ * opened with SWMR access.
*
* \include H5Pget_metadata_read_attempts.2.c
*
* The third example illustrates the two cases for retrieving the number
* of read attempts from the file access property list of a file opened
- * with non-SWMR acccess.
+ * with non-SWMR access.
*
* \include H5Pget_metadata_read_attempts.3.c
*
@@ -3892,7 +3917,7 @@ H5_DLL herr_t H5Pget_metadata_read_attempts(hid_t plist_id, unsigned *attempts);
* for more information.
*
* The type of data returned in \p type will be one of those
- * listed in the discussion of the \p type parameter in the the
+ * listed in the discussion of the \p type parameter in the
* description of the function H5Pset_multi_type().
*
* Use of this function is only appropriate for an HDF5 file
@@ -3965,7 +3990,7 @@ H5_DLL herr_t H5Pget_page_buffer_size(hid_t plist_id, size_t *buf_size, unsigned
* \brief Returns maximum data sieve buffer size
*
* \fapl_id{fapl_id}
- * \param[in] size Maximum size, in bytes, of data sieve buffer
+ * \param[out] size Maximum size, in bytes, of data sieve buffer
*
* \return \herr_t
*
@@ -4051,7 +4076,7 @@ H5_DLL herr_t H5Pget_vol_info(hid_t plist_id, void **vol_info);
* \details H5Pset_alignment() sets the alignment properties of a
* file access property list so that any file object greater
* than or equal in size to \p threshold bytes will be aligned
- * on an address which is a multiple of \p alignment. The
+ * on an address that is a multiple of \p alignment. The
* addresses are relative to the end of the user block; the
* alignment is calculated by subtracting the user block size
* from the absolute file address and then adjusting the address
@@ -4061,7 +4086,7 @@ H5_DLL herr_t H5Pget_vol_info(hid_t plist_id, void **vol_info);
* implying no alignment. Generally the default values will
* result in the best performance for single-process access to
* the file. For MPI IO and other parallel systems, choose an
- * alignment which is a multiple of the disk block size.
+ * alignment that is a multiple of the disk block size.
*
* If the file space handling strategy is set to
* #H5F_FSPACE_STRATEGY_PAGE, then the alignment set via this
@@ -4099,7 +4124,7 @@ H5_DLL herr_t H5Pset_alignment(hid_t fapl_id, hsize_t threshold, hsize_t alignme
* penalized when determining which chunks to flush
* from cache. A value of 0 means fully read or
* written chunks are treated no differently than
- * other chunks (the preemption is strictly LRU)
+ * other chunks (the preemption is strictly LRU),
* while a value of 1 means fully read or written
* chunks are always preempted before other chunks.
* If your application only reads or writes data once,
@@ -4115,13 +4140,13 @@ H5_DLL herr_t H5Pset_alignment(hid_t fapl_id, hsize_t threshold, hsize_t alignme
*
* \details H5Pset_cache() sets the number of elements, the total number of
* bytes, and the preemption policy value for all datasets in a file
- * on the file’s file access property list.
+ * on the file's file access property list.
*
* The raw data chunk cache inserts chunks into the cache by first
* computing a hash value using the address of a chunk and then by
- * using that hash value as the chunk’s index into the table of
+ * using that hash value as the chunk's index into the table of
* cached chunks. In other words, the size of this hash table and the
- * number of possible hash values is determined by the \p rdcc_nslots
+ * number of possible hash values are determined by the \p rdcc_nslots
* parameter. If a different chunk in the cache has the same hash value,
* a collision will occur, which will reduce efficiency. If inserting
* the chunk into the cache would cause the cache to be too big, then
@@ -4147,17 +4172,14 @@ H5_DLL herr_t H5Pset_alignment(hid_t fapl_id, hsize_t threshold, hsize_t alignme
*
* \note Note: Raw dataset chunk caching is not currently
* supported when using the MPI I/O and MPI POSIX file drivers
- * in read/write mode; see H5Pset_fapl_mpio() and
- * H5Pset_fapl_mpiposix(), respectively. When using one of these
- * file drivers, all calls to H5Dread() and H5Dwrite() will access
+ * in read/write mode; see H5Pset_fapl_mpio(). When using this
+ * file driver, all calls to H5Dread() and H5Dwrite() will access
* the disk directly, and H5Pset_cache() will have no effect on
* performance.
*
* \note Raw dataset chunk caching is supported when these drivers are
* used in read-only mode.
*
- * \todo Check on H5Pset_fapl_mpio() and H5Pset_fapl_mpiposix().
- *
* \version 1.8.0 The use of the \p mdc_nelmts parameter was discontinued.
* Metadata cache configuration is managed with
* H5Pset_mdc_config() and H5Pget_mdc_config().
@@ -4254,6 +4276,57 @@ H5_DLL herr_t H5Pset_core_write_tracking(hid_t fapl_id, hbool_t is_enabled, size
*
*/
H5_DLL herr_t H5Pset_driver(hid_t plist_id, hid_t driver_id, const void *driver_info);
+/**
+ * \ingroup FAPL
+ *
+ * \brief Sets a file driver according to a given driver name
+ *
+ * \plist_id
+ * \param[in] driver_name The new driver name
+ * \param[in] driver_config Optional string containing driver properties
+ *
+ * \return \herr_t
+ *
+ * \details H5Pset_driver_by_name() sets the file driver, by the name
+ * driver_name, for a file access or data transfer property list,
+ * \p plist_id, and supplies an optional string containing the
+ * driver-specific properties, \p driver_config. The driver
+ * properties string will be copied into the property list.
+ *
+ * If the driver specified by \p driver_name is not currently
+ * registered, an attempt will be made to load the driver as a
+ * plugin.
+ *
+ * \version 1.14.0 Function publicized in this release.
+ *
+ */
+H5_DLL herr_t H5Pset_driver_by_name(hid_t plist_id, const char *driver_name, const char *driver_config);
+/**
+ * \ingroup FAPL
+ *
+ * \brief Sets a file driver according to a given driver value (ID).
+ *
+ * \plist_id
+ * \param[in] driver_value The new driver value (ID)
+ * \param[in] driver_config Optional string containing driver properties
+ *
+ * \return \herr_t
+ *
+ * \details H5Pset_driver_by_value() sets the file driver, by the value
+ * driver_value, for a file access or data transfer property list,
+ * \p plist_id, and supplies an optional string containing the
+ * driver-specific properties, \p driver_config. The driver
+ * properties string will be copied into the property list.
+ *
+ * If the driver specified by \p driver_value is not currently
+ * registered, an attempt will be made to load the driver as a
+ * plugin.
+ *
+ * \version 1.14.0 Function publicized in this release.
+ *
+ */
+H5_DLL herr_t H5Pset_driver_by_value(hid_t plist_id, H5FD_class_value_t driver_value,
+ const char *driver_config);
/**
* \ingroup FAPL
*
@@ -4265,7 +4338,7 @@ H5_DLL herr_t H5Pset_driver(hid_t plist_id, hid_t driver_id, const void *driver_
* The external link open file cache holds files open after
* they have been accessed via an external link. This cache reduces
* the number of times such files are opened when external links are
- * accessed repeatedly and can siginificantly improves performance in
+ * accessed repeatedly and can significantly improves performance in
* certain heavy-use situations and when low-level file opens or closes
* are expensive.
*
@@ -4305,8 +4378,8 @@ H5_DLL herr_t H5Pset_driver(hid_t plist_id, hid_t driver_id, const void *driver_
* file open.
*
* Files opened through external links inherit the parent
- * file’s file access property list by default, and therefore
- * inherit the parent file’s external link open file cache
+ * file's file access property list by default, and therefore
+ * inherit the parent file's external link open file cache
* setting.
*
* When child files contain external links of their own, the
@@ -4548,7 +4621,7 @@ H5_DLL herr_t H5Pset_file_image(hid_t fapl_id, void *buf_ptr, size_t buf_len);
* is released from use.
*
* Some file drivers allow the use of user-defined callback functions
- * for allocating, freeing, and copying the driver’s internal buffer,
+ * for allocating, freeing, and copying the driver's internal buffer,
* potentially allowing optimizations such as avoiding large \c malloc
* and \c memcpy operations, or to perform detailed logging.
*
@@ -4764,9 +4837,8 @@ H5_DLL herr_t H5Pset_gc_references(hid_t fapl_id, unsigned gc_ref);
* enumerated value in #H5F_libver_t, indicating that this is
* currently the latest format available.
*
- * The library supports the following five pairs of
- * (\p low, \p high) combinations as derived from the values
- * in #H5F_libver_t:
+ * The library supports the following pairs of (\p low, \p high)
+ * combinations as derived from the values in #H5F_libver_t:
*
*
*
@@ -4777,14 +4849,13 @@ H5_DLL herr_t H5Pset_gc_references(hid_t fapl_id, unsigned gc_ref);
* \p low=#H5F_LIBVER_EARLIEST
* \p high=#H5F_LIBVER_V18 |
*
- * \li The library will create objects with the earliest
- * possible format versions.
- * \li The library will allow objects to be created with the
- * latest format versions available to library release 1.8.x.
- * \li API calls that create objects or features that are
- * available to versions of the library greater than 1.8.x
- * release will fail.
- * |
+ * \li The library will create objects with the earliest
+ * possible format versions.
+ * \li The library will allow objects to be created with the
+ * latest format versions available to library release 1.8.x.
+ * \li API calls that create objects or features that are
+ * available to versions of the library greater than 1.8.x
+ * release will fail.
*
*
* \p low=#H5F_LIBVER_EARLIEST
@@ -4794,13 +4865,33 @@ H5_DLL herr_t H5Pset_gc_references(hid_t fapl_id, unsigned gc_ref);
* format versions.
* \li The library will allow objects to be created with the latest
* format versions available to library release 1.10.x.
- * Since 1.10.x is also #H5F_LIBVER_LATEST, there is no upper
- * limit on the format versions to use. For example, if a newer
- * format version is required to support a feature e.g. virtual
- * dataset, this setting will allow the object to be created.
- * \li This is the library default setting and provides the greatest
- * format compatibility.
- * |
+ * \li API calls that create objects or features that are
+ * available to versions of the library greater than 1.10.x
+ * release will fail.
+ *
+ *
+ * \p low=#H5F_LIBVER_EARLIEST
+ * \p high=#H5F_LIBVER_V112 |
+ *
+ * \li The library will create objects with the earliest possible
+ * format versions.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.12.x.
+ * \li API calls that create objects or features that are
+ * available to versions of the library greater than 1.12.x
+ * release will fail. |
+ *
+ *
+ * \p low=#H5F_LIBVER_EARLIEST
+ * \p high=#H5F_LIBVER_V114 |
+ *
+ * \li The library will create objects with the earliest possible
+ * format versions.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.14.x.
+ * \li API calls that create objects or features that are
+ * available to versions of the library greater than 1.14.x
+ * release will fail. |
*
*
* \p low=#H5F_LIBVER_V18
@@ -4808,6 +4899,11 @@ H5_DLL herr_t H5Pset_gc_references(hid_t fapl_id, unsigned gc_ref);
* |
* \li The library will create objects with the latest format
* versions available to library release 1.8.x.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.8.x.
+ * \li The objects written with this setting may be
+ * accessible to a smaller range of library versions than
+ * would be the case if low is set to #H5F_LIBVER_EARLIEST.
* \li API calls that create objects or features that are available
* to versions of the library greater than 1.8.x release will
* fail.
@@ -4818,44 +4914,146 @@ H5_DLL herr_t H5Pset_gc_references(hid_t fapl_id, unsigned gc_ref);
* | \p low=#H5F_LIBVER_V18
* \p high=#H5F_LIBVER_V110 |
*
+ * \li The library will create objects with the latest format
+ * versions available to library release 1.8.x.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.10.x.
+ * \li API calls that create objects or features that are
+ * available to versions of the library greater than 1.10.x
+ * release will fail.
+ * \li Earlier versions of the library may not be able to access
+ * objects created with this setting. |
+ *
+ *
+ * \p low=#H5F_LIBVER_V18
+ * \p high=#H5F_LIBVER_V112 |
+ *
+ * \li The library will create objects with the latest format
+ * versions available to library release 1.8.x.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.12.x.
+ * \li API calls that create objects or features that are
+ * available to versions of the library greater than 1.12.x
+ * release will fail.
+ * \li Earlier versions of the library may not be able to access
+ * objects created with this setting. |
+ *
+ *
+ * \p low=#H5F_LIBVER_V18
+ * \p high=#H5F_LIBVER_V114 |
+ *
+ * \li The library will create objects with the latest format
+ * versions available to library release 1.8.x.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.14.x.
+ * \li API calls that create objects or features that are
+ * available to versions of the library greater than 1.14.x
+ * release will fail.
+ * \li Earlier versions of the library may not be able to access
+ * objects created with this setting. |
+ *
+ *
+ * \p low=#H5F_LIBVER_V110
+ * \p high=#H5F_LIBVER_V110 |
+ *
* \li The library will create objects with the latest format
- * versions available to library release 1.8.x.
+ * versions available to library release 1.10.x.
* \li The library will allow objects to be created with the latest
* format versions available to library release 1.10.x.
- * Since 1.10.x is also #H5F_LIBVER_LATEST, there is no upper
- * limit on the format versions to use. For example, if a
- * newer format version is required to support a feature e.g.
- * virtual dataset, this setting will allow the object to be
- * created.
+ * \li The objects written with this setting may be
+ * accessible to a smaller range of library versions than
+ * would be the case if low is set to #H5F_LIBVER_EARLIEST.
+ * \li API calls that create objects or features that are available
+ * to versions of the library greater than 1.10.x release will
+ * fail.
* \li Earlier versions of the library may not be able to access
* objects created with this setting. |
*
*
* \p low=#H5F_LIBVER_V110
- * \p high=#H5F_LIBVER_V110
- * |
+ * \p high=#H5F_LIBVER_V112
*
* \li The library will create objects with the latest format
* versions available to library release 1.10.x.
* \li The library will allow objects to be created with the latest
- * format versions available to library release 1.10.x.
- * Since 1.10.x is also #H5F_LIBVER_LATEST, there is no upper
- * limit on the format versions to use. For example, if a
- * newer format version is required to support a feature e.g.
- * virtual dataset, this setting will allow the object to be
- * created.
- * \li This setting allows users to take advantage of the latest
- * features and performance enhancements in the library.
- * However, objects written with this setting may be
+ * format versions available to library release 1.12.x.
+ * \li API calls that create objects or features that are available
+ * to versions of the library greater than 1.12.x release will
+ * fail.
+ * \li Earlier versions of the library may not be able to access
+ * objects created with this setting. |
+ *
+ *
+ * \p low=#H5F_LIBVER_V110
+ * \p high=#H5F_LIBVER_V114 |
+ *
+ * \li The library will create objects with the latest format
+ * versions available to library release 1.10.x.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.14.x.
+ * \li API calls that create objects or features that are available
+ * to versions of the library greater than 1.14.x release will
+ * fail.
+ * \li Earlier versions of the library may not be able to access
+ * objects created with this setting. |
+ *
+ *
+ * \p low=#H5F_LIBVER_V112
+ * \p high=#H5F_LIBVER_V112 |
+ *
+ * \li The library will create objects with the latest format
+ * versions available to library release 1.12.x.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.12.x.
+ * \li The objects written with this setting may be
* accessible to a smaller range of library versions than
* would be the case if low is set to #H5F_LIBVER_EARLIEST.
+ * \li API calls that create objects or features that are available
+ * to versions of the library greater than 1.12.x release will
+ * fail.
* \li Earlier versions of the library may not be able to access
- * objects created with this
- * setting.
- * |
+ * objects created with this setting.
+ *
+ *
+ * \p low=#H5F_LIBVER_V112
+ * \p high=#H5F_LIBVER_V114 |
+ *
+ * \li The library will create objects with the latest format
+ * versions available to library release 1.12.x.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.14.x.
+ * \li API calls that create objects or features that are available
+ * to versions of the library greater than 1.14.x release will
+ * fail.
+ * \li Earlier versions of the library may not be able to access
+ * objects created with this setting. |
+ *
+ *
+ * \p low=#H5F_LIBVER_V114
+ * \p high=#H5F_LIBVER_V114 |
+ *
+ * \li The library will create objects with the latest format
+ * versions available to library release 1.14.x.
+ * \li The library will allow objects to be created with the latest
+ * format versions available to library release 1.14.x.
+ * \li The objects written with this setting may be
+ * accessible to a smaller range of library versions than
+ * would be the case if low is set to #H5F_LIBVER_EARLIEST.
+ * \li API calls that create objects or features that are available
+ * to versions of the library greater than 1.14.x release will
+ * fail.
+ * \li Earlier versions of the library may not be able to access
+ * objects created with this setting. |
*
*
*
+ * \note *H5F_LIBVER_LATEST*:
+ * Since 1.14.x is also #H5F_LIBVER_LATEST, there is no upper
+ * limit on the format versions to use. That is, if a
+ * newer format version is required to support a feature
+ * in 1.14.x series, this setting will allow the object to be
+ * created.
+ *
* \version 1.10.2 #H5F_LIBVER_V18 added to the enumerated defines in
* #H5F_libver_t.
*
@@ -5206,11 +5404,39 @@ H5_DLL herr_t H5Pset_small_data_block_size(hid_t fapl_id, hsize_t size);
*/
H5_DLL herr_t H5Pset_vol(hid_t plist_id, hid_t new_vol_id, const void *new_vol_info);
+/**
+ * \ingroup FAPL
+ *
+ * \brief Query the capability flags for the VOL connector that will be used
+ * with this file access property list (FAPL).
+ *
+ * \fapl_id{plist_id}
+ * \param[out] cap_flags Flags that indicate the VOL connector capabilities
+ *
+ * \return \herr_t
+ *
+ * \details H5Pget_vol_cap_flags() queries the current VOL connector information
+ * for a FAPL to retrieve the capability flags for the VOL
+ * connector stack, as will be used by a file open or create
+ * operation that uses this FAPL.
+ *
+ * \note This routine supports the use of the HDF5_VOL_CONNECTOR environment
+ * variable to override the VOL connector set programmatically for the
+ * FAPL (with H5Pset_vol).
+ *
+ * \note The H5VL_CAP_FLAG_ASYNC flag can be checked to see if asynchronous
+ * operations are supported by the VOL connector stack.
+ *
+ * \since 1.14.0
+ *
+ */
+H5_DLL herr_t H5Pget_vol_cap_flags(hid_t plist_id, uint64_t *cap_flags);
+
#ifdef H5_HAVE_PARALLEL
/**
- * \ingroup GACPL
+ * \ingroup GAPL
*
- * \brief Sets metadata I/O mode for read operations to collective or independent (default)
+ * \brief Sets metadata I/O mode for read operations to be collective or independent (default)
*
* \gacpl_id
* \param[in] is_collective Boolean value indicating whether metadata reads are collective
@@ -5241,7 +5467,7 @@ H5_DLL herr_t H5Pset_vol(hid_t plist_id, hid_t new_vol_id, const void *new_vol_i
* identifier will be issued collectively from all ranks irrespective
* of the individual setting of a particular operation. If this
* assumption is not adhered to, corruption will be introduced in the
- * metadata cache and HDF5’s behavior will be undefined.
+ * metadata cache and HDF5's behavior will be undefined.
*
* Alternatively, a user may wish to avoid setting this property
* globally on the file access property list, and individually set it
@@ -5277,7 +5503,7 @@ H5_DLL herr_t H5Pset_vol(hid_t plist_id, hid_t new_vol_id, const void *new_vol_i
*/
H5_DLL herr_t H5Pset_all_coll_metadata_ops(hid_t plist_id, hbool_t is_collective);
/**
- * \ingroup GACPL
+ * \ingroup GAPL
*
* \brief Retrieves metadata read mode setting
*
@@ -5299,7 +5525,7 @@ H5_DLL herr_t H5Pget_all_coll_metadata_ops(hid_t plist_id, hbool_t *is_collectiv
/**
* \ingroup FAPL
*
- * \brief Sets metadata write mode to collective or independent (default)
+ * \brief Sets metadata write mode to be collective or independent (default)
*
* \fapl_id{plist_id}
* \param[out] is_collective Boolean value indicating whether metadata
@@ -5346,12 +5572,38 @@ H5_DLL herr_t H5Pset_coll_metadata_write(hid_t plist_id, hbool_t is_collective);
H5_DLL herr_t H5Pget_coll_metadata_write(hid_t plist_id, hbool_t *is_collective);
/**
- * \todo Add missing documentation
+ * \ingroup FAPL
+ *
+ * \brief Get the MPI communicator and info
+ *
+ * \fapl_id
+ * \param[out] comm MPI communicator
+ * \param[out] info MPI info object
+ * \return \herr_t
+ *
+ * \details H5Pget_mpi_params() gets the MPI communicator and info stored in
+ * the file access property list \p fapl_id.
+ *
+ * \todo When was this introduced?
+ *
*/
H5_DLL herr_t H5Pget_mpi_params(hid_t fapl_id, MPI_Comm *comm, MPI_Info *info);
/**
- * \todo Add missing documentation
+ * \ingroup FAPL
+ *
+ * \brief Set the MPI communicator and info
+ *
+ * \fapl_id
+ * \param[in] comm MPI communicator
+ * \param[in] info MPI info object
+ * \return \herr_t
+ *
+ * \details H5Pset_mpi_params() sets the MPI communicator and info stored in
+ * the file access property list \p fapl_id.
+ *
+ * \todo When was this introduced?
+ *
*/
H5_DLL herr_t H5Pset_mpi_params(hid_t fapl_id, MPI_Comm comm, MPI_Info info);
#endif /* H5_HAVE_PARALLEL */
@@ -5592,7 +5844,7 @@ H5_DLL herr_t H5Pget_chunk_opts(hid_t plist_id, unsigned *opts);
* no dataset attributes hint setting for the dataset
* creation property list \p dcpl_id. This setting is used to
* inform the library to create minimized dataset object headers
- * when TRUE. The setting value is returned in the boolean pointer
+ * when true. The setting value is returned in the boolean pointer
* \p minimize.
*
* \since 1.10.5
@@ -5627,6 +5879,9 @@ H5_DLL herr_t H5Pget_dset_no_attrs_hint(hid_t dcpl_id, hbool_t *minimize);
* are null pointers then the corresponding information is not
* returned.
*
+ * \note On Windows, off_t is typically a 32-bit signed long value, which
+ * limits the valid offset that can be returned to 2 GiB.
+ *
* \version 1.6.4 \p idx parameter type changed to unsigned.
* \since 1.0.0
*
@@ -5688,7 +5943,7 @@ H5_DLL int H5Pget_external_count(hid_t plist_id);
* \note H5Pget_fill_time() is designed to work in coordination with the
* dataset fill value and dataset storage allocation time properties,
* retrieved with the functions H5Pget_fill_value() and
- * H5Pget_alloc_time().
+ * H5Pget_alloc_time().type == H5FD_MEM_DRAW
*
* \since 1.6.0
*
@@ -6049,12 +6304,12 @@ H5_DLL herr_t H5Pset_chunk(hid_t plist_id, int ndims, const hsize_t dim[/*ndims*
* dataset creation property list \p dcpl_id.
*
* The available option is detailed in the parameters section.
- * Only chunks that are not completely filled by the dataset’s
+ * Only chunks that are not completely filled by the dataset's
* dataspace are affected by this option. Such chunks are
* referred to as partial edge chunks.
*
* \b Motivation: H5Pset_chunk_opts() is used to specify storage
- * options for chunks on the edge of a dataset’s dataspace. This
+ * options for chunks on the edge of a dataset's dataspace. This
* capability allows the user to tune performance in cases where
* the dataset size may not be a multiple of the chunk size and
* the handling of partial edge chunks can impact performance.
@@ -6078,13 +6333,13 @@ H5_DLL herr_t H5Pset_chunk_opts(hid_t plist_id, unsigned opts);
* hint setting for the dataset creation property list \p dcpl_id.
* Datasets created with the dataset creation property list
* \p dcpl_id will have their object headers minimized if the
- * boolean flag \p minimize is set to TRUE. By setting \p minimize
- * to TRUE, the library expects that no attributes will be added
+ * boolean flag \p minimize is set to true. By setting \p minimize
+ * to true, the library expects that no attributes will be added
* to the dataset. Attributes can be added, but they are appended
* with a continuation message, which can reduce performance.
*
* This setting interacts with H5Fset_dset_no_attrs_hint(): if
- * either is set to TRUE, then the created dataset's object header
+ * either is set to true, then the created dataset's object header
* will be minimized.
*
* \since 1.10.5
@@ -6237,6 +6492,8 @@ H5_DLL herr_t H5Pset_fill_value(hid_t plist_id, hid_t type_id, const void *value
*
* \return \herr_t
*
+ * \par_compr_note
+ *
* \details H5Pset_shuffle() sets the shuffle filter, #H5Z_FILTER_SHUFFLE,
* in the dataset creation property list \p plist_id. The shuffle
* filter de-interlaces a block of data by reordering the bytes.
@@ -6308,6 +6565,8 @@ H5_DLL herr_t H5Pset_layout(hid_t plist_id, H5D_layout_t layout);
*
* \return \herr_t
*
+ * \par_compr_note
+ *
* \details H5Pset_nbit() sets the N-Bit filter, #H5Z_FILTER_NBIT, in the
* dataset creation property list \p plist_id.
*
@@ -6330,10 +6589,10 @@ H5_DLL herr_t H5Pset_layout(hid_t plist_id, H5D_layout_t layout);
* | byte 0 |
*
*