diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2022-08-04 17:56:48 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-04 17:56:48 (GMT) |
commit | bf07e0f2c9b381509abbde59fca8bea5445da261 (patch) | |
tree | 69551f0ec6658cc4e970bf1080fa4c5b256b289f /tools | |
parent | a71534fcc248737491adcfd770c7ab69b4adc2d4 (diff) | |
download | hdf5-bf07e0f2c9b381509abbde59fca8bea5445da261.zip hdf5-bf07e0f2c9b381509abbde59fca8bea5445da261.tar.gz hdf5-bf07e0f2c9b381509abbde59fca8bea5445da261.tar.bz2 |
Subfiling updates for release (#1963)
* Remove generated file h5fuse.sh
* Link pthreads library when Subfiling VFD is built
* Switch to MPI I/O driver for Subfiling HDF5 stub file
* Rough first implementation for Subfiling file deletion
* Subfiling VFD - get file dirname for file deletion
* Subfiling VFD - set lock callback to NULL for now to avoid performance
issues
* Committing clang-format changes
* Minor tidying up of Subfiling testing
* Fixups for Subfiling VFD support in tools
* Tidy up Subfiling public interface and add Doxygen
* Respect Subfiling configuration settings from application
* Add release note for Subfiling VFD
* Committing clang-format changes
* Committing clang-format changes
* Shorten some Subfiling environment variable names
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/lib/h5tools.c | 27 | ||||
-rw-r--r-- | tools/lib/h5tools.h | 9 |
2 files changed, 27 insertions, 9 deletions
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c index 9c4f746..e0de100 100644 --- a/tools/lib/h5tools.c +++ b/tools/lib/h5tools.c @@ -81,11 +81,20 @@ const char *volnames[] = { * */ const char *drivernames[] = { - [SEC2_VFD_IDX] = "sec2", [DIRECT_VFD_IDX] = "direct", [LOG_VFD_IDX] = "log", - [WINDOWS_VFD_IDX] = "windows", [STDIO_VFD_IDX] = "stdio", [CORE_VFD_IDX] = "core", - [FAMILY_VFD_IDX] = "family", [SPLIT_VFD_IDX] = "split", [MULTI_VFD_IDX] = "multi", - [MPIO_VFD_IDX] = "mpio", [ROS3_VFD_IDX] = "ros3", [HDFS_VFD_IDX] = "hdfs", - [ONION_VFD_IDX] = "onion", + [SEC2_VFD_IDX] = "sec2", + [DIRECT_VFD_IDX] = "direct", + [LOG_VFD_IDX] = "log", + [WINDOWS_VFD_IDX] = "windows", + [STDIO_VFD_IDX] = "stdio", + [CORE_VFD_IDX] = "core", + [FAMILY_VFD_IDX] = "family", + [SPLIT_VFD_IDX] = "split", + [MULTI_VFD_IDX] = "multi", + [MPIO_VFD_IDX] = "mpio", + [ROS3_VFD_IDX] = "ros3", + [HDFS_VFD_IDX] = "hdfs", + [SUBFILING_VFD_IDX] = H5FD_SUBFILING_NAME, + [ONION_VFD_IDX] = "onion", }; #define NUM_VOLS (sizeof(volnames) / sizeof(volnames[0])) @@ -574,6 +583,14 @@ h5tools_set_fapl_vfd(hid_t fapl_id, h5tools_vfd_info_t *vfd_info) H5TOOLS_GOTO_ERROR(FAIL, "The HDFS VFD is not enabled"); #endif } + else if (!HDstrcmp(vfd_info->u.name, drivernames[SUBFILING_VFD_IDX])) { +#ifdef H5_HAVE_SUBFILING_VFD + if (H5Pset_fapl_subfiling(fapl_id, (const H5FD_subfiling_config_t *)vfd_info->info) < 0) + H5TOOLS_GOTO_ERROR(FAIL, "H5Pset_fapl_subfiling() failed"); +#else + H5TOOLS_GOTO_ERROR(FAIL, "The Subfiling VFD is not enabled"); +#endif + } else if (!HDstrcmp(vfd_info->u.name, drivernames[ONION_VFD_IDX])) { /* Onion driver */ if (!vfd_info->info) diff --git a/tools/lib/h5tools.h b/tools/lib/h5tools.h index 6561b68..37ea36f 100644 --- a/tools/lib/h5tools.h +++ b/tools/lib/h5tools.h @@ -578,15 +578,15 @@ typedef struct h5tools_vfd_info_t { } u; } h5tools_vfd_info_t; -/* This enum should match the entries in the above 'volnames' - * since they are indices into the 'volnames' array. */ +/* This enum should match the entries in the 'volnames' + * array since they are indices into that array. */ typedef enum { NATIVE_VOL_IDX = 0, PASS_THROUGH_VOL_IDX, } vol_idx; -/* This enum should match the entries in the above 'drivernames' - * since they are indices into the 'drivernames' array. */ +/* This enum should match the entries in the 'drivernames' + * array since they are indices into that array. */ typedef enum { SEC2_VFD_IDX = 0, DIRECT_VFD_IDX, @@ -600,6 +600,7 @@ typedef enum { MPIO_VFD_IDX, ROS3_VFD_IDX, HDFS_VFD_IDX, + SUBFILING_VFD_IDX, ONION_VFD_IDX, } driver_idx; |