summaryrefslogtreecommitdiffstats
path: root/src/H5FDcore.c
Commit message (Collapse)AuthorAgeFilesLines
* VFD plugins (#602)jhendersonHDF2021-09-291-6/+39
| | | | | | | | | | | | | | | | | * Implement support for loading of Virtual File Drivers as plugins Fix plugin caching for VOL connector and VFD plugins Fix plugin iteration to skip paths that can't be opened * Enable dynamic loading of VFDs with HDF5_DRIVER environment variable * Temporarily disable error reporting during H5F_open double file open * Default to using HDstat in h5_get_file_size for unknown VFDs * Use macros for some environment variables that HDF5 interprets * Update "null" and "ctl testing" VFDs
* VFD ctl feature (#981)jhendersonHDF2021-09-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added "ctl" callback to the VFD interface, and the associated H5FDctl() and H5FD_ctl() calls. Modified the MPIO VFD accordingly -- specifically: Added ctl() call with op-code support to expose rank, size, and communicator. Modified H5FD_mpi_get_rank(), H5FD_mpi_get_size(), and H5FD_mpi_get_comm() to use the new ctl() callback. In passing removed the const qualifier from the file parameter of these functions, as the file parameter of the ctl callback is not const. Deleted the old H5FD__mpio_mpi_rank(), H5FD__mpio_mpi_size(), and H5FD__mpio_communicator() calls from the MPIO VFD. Deleted H5FD_class_mpi_t from H5FDprivate.h, and modified the MPIO VFD accordingly. Note that all VFDs now use H5FD_class_t, with no special class for VFDs that that support MPI. Some minor touch ups to the Neil's selection I/O mods in passing. Tested serial and parallel, debug and production on charis and jelly. * Reserve a range of VFD "ctl" opcodes for library and experimental usage * Add "ctl" callbacks to passthrough VFDs * Add RELEASE.txt entry for "ctl" callback * Use H5FDopen with H5F_ACC_RDWR flag instead of H5F_ACC_TRUNC in vfd test * Remove handling of passthrough "ctl" flag from multi VFD * Move logic for testing H5FD_CTL__TEST_OPCODE into a testing VFD Revise description of "ctl" callback in RELEASE.txt Remove unused H5FD_CTL__NUM_OPCODES definition Fix some warnings in multi VFD Co-authored-by: mainzer <mainzer#hdfgroup.org>
* Brings the native implementation of H5Fdelete() from Bitbucket (#524)Dana Robinson2021-04-161-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Committing clang-format changes * Brings the native VFD H5Fdelete() implementation from Bitbucket Only brings the 'del' callbacks, not the 'open/close' scheme. * Formatter changes * Committing clang-format changes * Fixes direct VFD callback name * Removes UNUSED macro from family API call * Adds barrier and rank 0 check to MPI-I/O VFD delete * Revert "Adds barrier and rank 0 check to MPI-I/O VFD delete" This reverts commit 909765f759d9d96e84f4b8b1cc14f7d2b3ac8143. * Revert "Revert "Adds barrier and rank 0 check to MPI-I/O VFD delete"" This reverts commit 9b04bef1157853fc79fcb8fcc3e8ba1371091702. * Adds a second barrier after the delete in MPI-I/O VFD * Only delete files in the core VFD when the backing store flag is set * Fixes string issues in multi VFD Also, h5test.c cleanup code now uses H5Fdelete(). * Formatted source * Rework fapl checks for MPI-I/O VFD delete callback Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Update license url (#332)Larry Knox2021-02-171-1/+1
| | | | | | * Modify temporary rpath for testing in java example scripts. * Update URL in source file Copyright headers for web copy of COPYING file - src and test directories.
* develop revert source to clang-format version 11 (#293)Allen Byrne2021-01-291-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * OESS-98 convert plugin option to FetchContent, add tests * Fixes for pkcfg files because of plugin option * OESS-98 fix tools test for plugins * Keep doxygen comments under 100 chars long - format hint * Whitespace * HDFFV-11144 - Reclassify CMake messages * HDFFV-11099/11100 added help text * Reworked switch statement to compare string instead * Fix typo * Update CDash mode * Correct name of threadsafe * Correct option name * Undo accidental commit * Note LLVM 10 to 11 format default changes * Update format plugin * Undo clang-format version 11 changes * One more correction
* Replace H5E_ATOM major error category with H5E_ID (#121)Dana Robinson2020-11-301-2/+2
| | | | | | | | | | * Renames H5I_ATOM to H5I_ID, among other related changes * Java has been updated. * Fortran is failing on my VM, even though I don't touch that. * Adds a RELEASE.txt note for H5E_ATOM to H5E_ID changes * Fixes typos in comments
* Enhance API tracing (#120)Quincey Koziol2020-11-261-2/+2
| | | Enhance API tracing to handle more types, and to put tracing info in a string, allowing it to be used when reporting errors. Also refactor ref-counted strings (H5RS) module to add capabilities needed for the tracing. Refactored H5Gname.c routines to use new H5RS routines also. Added /*out*/ tags to API routines that are returning information to the application. Updated H5TRACE macros from running updated trace script over library code. Added tests for new H5RS routines.
* Basic alignment with async branch (#115)Quincey Koziol2020-11-231-7/+7
| | | | | | | * Basic alignment with async branch - trivial changes to reduce clutter in overall diff. * Update minor error code to reflect change within library * Update the error output to match library
* Whitespace and url correctionAllen Byrne2020-10-191-3/+3
|
* Clang-format of source filesAllen Byrne2020-09-301-418/+433
|
* File changes to affect formattingAllen Byrne2020-09-041-31/+33
|
* Revert "Merge pull request #2477 in HDFFV/hdf5 from pio_update to develop"Larry Knox2020-08-181-4/+0
| | | | | This reverts commit ba80bcaff24113f438da0f40cb5b5479d4a21cc6, reversing changes made to 522ef0dd5ca1daa2b26c3fe4459ddbb1eaf6ec20.
* Merge remote-tracking branch 'origin/develop' into pio_updateQuincey Koziol2020-08-161-26/+53
|\
| * Merge remote-tracking branch 'origin/develop' into namespace_cleanup_01Quincey Koziol2020-08-071-5/+37
| |\
| | * Renames BEST-EFFORT to BEST_EFFORT for file locking env varDana Robinson2020-08-061-1/+1
| | |
| | * Fixed missing parens in VFDsDana Robinson2020-08-031-1/+1
| | |
| | * Squash merge of file locking fixesDana Robinson2020-08-031-5/+37
| | |
| * | Clean up private / package / static namespace issues (function naming, whichQuincey Koziol2020-08-061-21/+16
| |/ | | | | | | | | | | header file, FUNC_ENTER / LEAVE, etc). Removed remaining personal email addresses from library source code (still needs cleaned from other directories). Misc. warning, style, and whitespace cleanup.
| * Trim trailing whitespaceQuincey Koziol2020-04-201-19/+19
| |
* | Don't track file offset position when using pread / pwrite.Quincey Koziol2020-03-291-19/+23
|/
* Fixed bugs in pread/pwrite I/O in VFDs.Dana Robinson2019-12-091-5/+7
| | | | Fixes HDFFV-10945.
* Added an H5MM_memcpy call that checks for buffer overlap.Dana Robinson2019-03-161-3/+3
|
* Updated sec2, log, and core VFDs to use pread/pwrite whenDana Robinson2019-01-311-6/+22
| | | | available (can be controlled via a configure/CMake option)
* Merge branch 'develop' into vfd_init_cleanupDana Robinson2019-01-011-24/+124
|\
| * Clear driver properties before returning them to application.Quincey Koziol2018-12-191-24/+124
| | | | | | | | | | Move write_tracking and page_size properties to be inside the core VFD's driver properties.
* | Cleaned up and normalized VFD init calls.Dana Robinson2018-12-181-3/+3
|/
* Merge branch 'develop' into windows_openDana Robinson2017-05-311-3/+5
|\
| * Fixed HDFFV-10214:Dana Robinson2017-05-191-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | * Updated comments in the library to accurately reflect the semantics of the H5FD_FEAT_POSIX_COMPAT_HANDLE flag. * Removed the check for the POSIX compatible handle feature flag when determining if a VFD supports SWMR. Partial work for HDFFV-10197: * Added a new H5FD_FEAT_DEFAULT_VFD_COMPATIBLE feature flag that is set when a VFD creates output that is compatible with the default VFD. Will be used in the testing but might also be generally useful to users.
* | Rework of the POSIX file open permissions and macros to clean upDana Robinson2017-04-281-5/+5
| | | | | | | | | | | | HDopen() calls. Also fixed a minor const warning in the core VFD.
* | Changed the Windows POSIX open() file permissions to be correctDana Robinson2017-04-281-3/+3
|/ | | | according to MSDN. Partial fix for HDFFV-9630.
* Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to ↵Larry Knox2017-04-251-6/+4
| | | | | | | | | | hdf5_1_10 * commit '54957d37f5aa73912763dbb6e308555e863c43f4': Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes. Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh. Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1 Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
* Bring over another batch (hopefully the last) of non-SWMR "normalization"Quincey Koziol2016-11-291-15/+28
| | | | changes from the revise_chunks branch.
* [svn-r30147] Removed #ifdef-guarded debug output from core VFD.Dana Robinson2016-07-061-72/+15
| | | | | Tested on: 64-bit Ubuntu Linux w/ gcc 5.3.1 Autotools serial w/ core and core_paged VFDs
* [svn-r30113] Description:Quincey Koziol2016-06-281-2/+2
| | | | | | | | Clean up warnings (from 2774 -> 1560, with my standard debug build) Tested on: MacOSX/64 10.11.5 (amazon) w/serial, parallel & production (h5committest forthcoming)
* [svn-r29978] Description:Quincey Koziol2016-05-301-8/+8
| | | | | | | | | | Bring r29914 from revise_chunks branch to trunk: Banished -Wformat= warnings from the library, tools, and tests. Tested on: MacOSX/64 10.11.5 (amazon) w/serial, parallel & production (h5committest forthcoming)
* [svn-r28972] Removed option to clear file buffers from autotools, CMake, and ↵Dana Robinson2016-01-261-4/+0
| | | | | | | | | | | | library. Buffers that will be written to disk will now always be cleared since not doing this has huge security implications. Tested on: 64-bit Ubuntu 15.10 (Linux 4.2.0, x86_64) gcc 5.2.1 serial autotools parallel autotools (MPICH 3.1.4) serial CMake
* [svn-r28626] Brought VFD-level file locking code over from revise_chunks.Dana Robinson2015-12-141-8/+82
| | | | | | | Tested on: Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1 serial only (these changes have been in revise_chunks for a long time)
* [svn-r27811] Description:Quincey Koziol2015-09-161-8/+8
| | | | | | | | | | | Refactor property list code to "deep copy" properties in the correct way, retraining the rest of the library to copy & release things correctly. This cleans up another batch of memory leaks, etc. within the library. Tested on: MacOSX/64 10.10.5 (amazon) w/serial & parallel Linux/32 2.6.x (jam) w/serial & parallel (h5committest forthcoming)
* [svn-r27768] Description:Quincey Koziol2015-09-141-124/+119
| | | | | | | | | | | | | | | | | | | | | | Complete revamp of package initialization/shutdown mechanism in the library. Each package now has a single init/term routine. This new way should avoid packages being re-initialized during library shutdown and is also be _much_ more proactive about giving feedback for resource leaks internal to the library. Introduces a new "module" header file for packages in the library (e.g src/H5Fmodule.h) which sets up some necessary package configuration macros for the FUNC_ENTER/LEAVE macros. (The VFL drivers have their own slightly modified version of this header, src/H5FDdrvr_module.h) Also cleaned up a bunch of resources leaks all across the library and tests, along with addressing many warnings, as I encountered them. Tested on: MacOSX/64 10.10.5 (amazon) w/serial & parallel Linux/64 3.10.x (kituo) w/serial & parallel Linux/64 2.6.x (ostrich) w/serial
* [svn-r27572] Removed VMS-specific code from the library.Dana Robinson2015-08-241-22/+0
| | | | | | | | | The only remaining code consists of a few floating-point tests that rely on pre-generated and checked-in VMS files. These have been left alone, even though they will not be possible to recreate, since testing VMS float behavior is still important. Tested on: h5committest
* [svn-r27133] - Add a new attribute function characterstic for format:Mohamad Chaarawi2015-06-011-7/+7
| | | | | | | | * H5_ATTR_FORMAT(X,Y,Z) __attribute__((format(X, Y, Z))) - Rename UNUSED attribute characterstic to H5_ATTR_UNUSED. - Rename NORETURN attribute characterstic to H5_ATTR_NORETURN tested with h5committest.
* [svn-r27045] Renamed H5_ASSIGN_OVERFLOW() to H5_CHECKED_ASSIGN() and re-orderedDana Robinson2015-05-101-2/+2
| | | | | | the arguments to be in a more logical order. Tested on: h5committest
* [svn-r26002] move checks on reading/writing beyond file eoa outside of the ↵Mohamad Chaarawi2015-01-221-4/+0
| | | | | | file drivers and into a centralized place in H5FD_read/write. tested h5committest.
* [svn-r25929] Description:Quincey Koziol2014-12-291-3/+3
| | | | | | | | | | Clean up EOF code within library and add 'mem_type' parameter to 'get_eof' VFD callback, to avoid various ambiguous situations, particularly with the multi VFD. (Supports changes for 'avoid_truncate' feature also) Tested on: MacOSX/64 10.10.1 (amazon) w/serial & parallel h5committest forthcoming
* [svn-r25531] remove use of C99 PRI that failed on windows in dtypes.cMohamad Chaarawi2014-08-111-4/+9
| | | | fix bugs where hid_t were assumed to be 32 bit ints or herr_t.
* [svn-r25161] Removed some C++-style comments from H5FDcore.c.Dana Robinson2014-05-051-8/+0
| | | | | | | Tested on: 32-bit LE linux (jam) Tested with HDF5_DRIVER set to "core_paged".
* [svn-r25045] Fixed a few missing lines of code that were not merged when theDana Robinson2014-04-141-5/+15
| | | | | | | | | | | core VFD paging changes were brought over. Tested on: 32-bit LE linux (jam) 64-bit LE linux (koala) 64-bit BE linux (ostrich) All were tested with HDF5_DRIVER set to "core_paged".
* [svn-r24993] Purpose:Dana Robinson2014-04-091-37/+350
| | | | | | | | | | | | | | | Adds write tracking to the core VFD, which can be configured via the H5Pset/get_core_write_tracking() API call. When enabled and writing to the backing store is enabled, this feature will track writes and only write out the changed bytes on flush/close. Tested on: 32-bit LE linux (jam) w/ Fortran and C++ 64-bit BE linux (ostrich) 64-bit Darwin 12.5.0 (kite) All were tested using the core VFD w/ paging on (core_paged in the VFD list). Make check-vfd was also tested on jam.
* [svn-r23713] Description:Quincey Koziol2013-05-211-1/+1
| | | | | | | | | | Clean up warnings, switch library code to use Standard C/POSIX wrapper macros, remove internal calls to API routines, update checkapi and checkposix scripts. Tested on: Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN Big-Endian Linux/64 (ostrich)
* [svn-r23219] Description:Quincey Koziol2013-02-021-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring reviewed changes from Coverity branch back to trunk (QK & JK): r20457: Coverity issue 691: return of H5duo could be negative. Fixed by using STDOUT_FILENO and redesign parse_command_line and main to cleanup file allocations. The output_file var is null when using stdout. In cleanup do not close output_file if NULL. r20510: Initialize ufid = -1 and predicate HDclose call on ufid != -1 r20511: Purpose: Fix coverity issue 1715 Description: Free "file" and nested data on failure in H5FD_core_open. r20512: Initialize ifid = -1 and predicate HDclose call on ifid != -1 r20514: Initialize h5fid = -1 and predicate HDclose call on h5fid != -1 r20516: Added else branch to the if (ret_value < 0) check. r20522: Addressed coverity issues 930-933, 850, 836, 835, 1307. All minor potential buffer overwrite bugs, or coverity errors. Fixed by replacing strcpy and sprintf with strncpy and snprintf. r20523: fixed coverity issues 68, 1120, 1116i r20524: Check H5Z_SZIP->encoder_present < 1 assuming 0 represents absence. r20601: Purpose: Fix coverity issues 1703-1705 Description: Modified the cleanup code in test_free in accum.c to reset allocated buffers to NULL after they are freed, and modified the error cleanup code to check if these buffers are NULL before freeing them. Also fixed some unrelated warnings in accum.c. r20602: Use HDsnprintf and HDstrncat r20603: Purpose: Fix coverity issues 808-809 Description: Modified test_core in vfd.c to check the returns from malloc, and keep track of whether points and check are allocated by setting them to NULL when they are not. Added code to free points and check on error if they are not NULL. Also fixed unrelated warnings in vfd.c. r20604: Use HDstrncpy. r20605: Use HDstrncpy and HDstrncat. r20606: Purpose: Fix coverity issue 807 Description: Modified long_compact in stab.c to keep track of whether objname is allocated by setting it to NULL when it is not. Added code to free objname on error if it is not NULL. r20607: Changed string function calls to use versions that specify the string length to fix coverity issues 832 and 839. Tested on: Mac OSX/64 10.8.2 (amazon) (Too minor to require h5committest)