diff options
author | Dana Robinson <43805+derobins@users.noreply.github.com> | 2022-08-02 19:54:40 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-02 19:54:40 (GMT) |
commit | fcf41b3cd60df51af9be529e379a9dd6c488d088 (patch) | |
tree | e486d5f8254a33b978c34069b9810ce171ba7c2c /tools/src/h5repack/h5repack_main.c | |
parent | ea13de1bb0aba8a97c75f10343dc4c792193b215 (diff) | |
download | hdf5-fcf41b3cd60df51af9be529e379a9dd6c488d088.zip hdf5-fcf41b3cd60df51af9be529e379a9dd6c488d088.tar.gz hdf5-fcf41b3cd60df51af9be529e379a9dd6c488d088.tar.bz2 |
Onion VFD (#1953)
* Onion VFD feature
* Fixes onion VFD errors with non-sec2 backing store VFDs
* Disables the onion VFD tests w/ ph5diff
* Disables non-sec2 VFDs as onion VFD backing stores
* Committing clang-format changes
* Formatted source
* Typo
* Adds onion VFD tools tests to CMake
* Fixes for v16 API compatibility
* Memset structs to avoid bad frees on errors
* H5Dwrite() calls now use H5T_NATIVE_INT as the memory type vs LE
* Properly decodes checksums on BE machines
* Be more careful about uint64_t to haddr_t/hsize_t conversions
* Another fix for BE data comparison
* Removed double underscores from onion constants
* Replace hard-coded onion header string w/ constant
* Fixes cleanup paths in H5FD__onion_ingest_history()
* Fixed use of size_t revision numbers
* Fix h5dump revision count format string
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'tools/src/h5repack/h5repack_main.c')
-rw-r--r-- | tools/src/h5repack/h5repack_main.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tools/src/h5repack/h5repack_main.c b/tools/src/h5repack/h5repack_main.c index a805b3d..0d3bc9a 100644 --- a/tools/src/h5repack/h5repack_main.c +++ b/tools/src/h5repack/h5repack_main.c @@ -76,6 +76,17 @@ static struct h5_long_options l_opts[] = {{"alignment", require_arg, 'a'}, {"dst-vfd-info", require_arg, 'Z'}, {NULL, 0, '\0'}}; +static H5FD_onion_fapl_info_t onion_fa_in_g = { + H5FD_ONION_FAPL_INFO_VERSION_CURR, + H5P_DEFAULT, /* backing_fapl_id */ + 32, /* page_size */ + H5FD_ONION_STORE_TARGET_ONION, /* store_target */ + H5FD_ONION_FAPL_INFO_REVISION_ID_LATEST, + 0, /* force_write_open */ + 0, /* creation_flags */ + "input file", /* comment */ +}; + /*------------------------------------------------------------------------- * Function: usage * @@ -875,6 +886,23 @@ parse_command_line(int argc, const char *const *argv, pack_opt_t *options) ret_value = -1; } + /* If the input file uses the onion VFD, get the revision number */ + if (in_vfd_info.u.name && !HDstrcmp(in_vfd_info.u.name, "onion")) { + if (in_vfd_info.info) { + errno = 0; + onion_fa_in_g.revision_num = HDstrtoull(in_vfd_info.info, NULL, 10); + if (errno == ERANGE) { + HDprintf("Invalid onion revision specified for the input file\n"); + usage(h5tools_getprogname()); + exit(EXIT_FAILURE); + } + } + else + onion_fa_in_g.revision_num = 0; + + in_vfd_info.info = &onion_fa_in_g; + } + /* Setup FAPL for input and output file accesses */ if (custom_in_vol || custom_in_vfd) { if ((tmp_fapl = h5tools_get_fapl(options->fin_fapl, custom_in_vol ? &in_vol_info : NULL, |