summaryrefslogtreecommitdiffstats
path: root/src/H5PLprivate.h
Commit message (Collapse)AuthorAgeFilesLines
* Simplify function enter macros for performance benefits (#1024)David Young2021-11-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Take a stab at using constructors to initialize instead of function-entry macros. This is a work in progress. It's good enough to run `many_dsets`. * Committing clang-format changes * Add the `many_dsets` benchmark and some scripts I used on jelly for setting up the build/test environment and for recording/flame-graphing profiles. * Committing clang-format changes * Change my Makefile and environment script to work both on jelly and on mayll (and probably on Summit). * Disable clang-format "fix." * Replace the `if (!H5_TERM_GLOBAL)` test in each FUNC_ENTER_ macro with `if (true)`. * Fix bad grammar in a comment. * Instead of labeling the H5*__init_package routines constructors, fold each into an initialization routine, H5*_init(), and call each of the H5*_init() routines. Call most of the H5*_init() routines from H5_init_library() in an explicit order that I found out earlier by instrumenting each __init_package routine and running the library tests. Roll H5FD*__init_package routines into H5FD*_init() routines. This change ends just-in-time initialization of package dependencies by package initializers. Don't track in per-package variables (H5_PKG_INIT_VAR) whether each package has been initialized. Instead, track in a single library variable whether the whole library is initialized or not. Drive the initialization of packages by H5_init_library() with a table of initializer routines. Also drive the termination of packages by H5_term_library() with a table. Perform initialization as needed from FUNC_ENTER_API_INIT(err). This basically restores the old behavior of that macro. Delete a bunch of #definitions in H5private.h that have fallen out of use with these changes. * Committing clang-format changes * Undo the bad auto-formatting that appears to have occurred in spite of my disabling it. Bracket some code in /* clang-format off */ /* clang-format on */ to prevent a recurrence. * Remove a diagnostic abort(). * Fix a logic error: print a comma between every package terminator run, and don't print an initial comma. * Complete the changes I started in H5_term_library() that undo the bad auto-formatting. Stop tracking whether package "tops" were initialized in per-package variables H5*_top_package_initialize_s. H5_term_library() takes care of that for them. Remove H5R_top_term_package() and H5R_term_package(), they don't do anything. * Committing clang-format changes * NFCI. Simplify macro text: replace `if (true) {` with `{`. * Fix formatting and suppress clang-format on a longer range. * Quiet some unused label, unused variable complaints that cropped up after I simplified the FUNC_ENTER_ macros for the sake of performance. * Committing clang-format changes * Delete some programs and scripts that don't belong in the pull request. * Use the right function-entry macro. * Use a sensible format and disable auto-formatting. * Stop calling do-nothing initializer H5FS_init(). Delete it. * Document what changes to make if the default VFD changes. * While I am here, change an `await_prior` flag on the terminator table to `true` to match the previous, non-table-driven code that was here. Found the oversight making the following changes: NFCI: insert an empty line and copy over slightly-edited comments from the previous version, where those comments still correctly explained how library termination operated. * NFCI: lower a staircase. * Replace every occurrence of FUNC_ENTER_NOAPI_INIT(...) with H5_PUSH_FUNC since that is all that that macro does any more. Quiet a bunch of new warnings by changing FUNC_ENTER_NOAPI(...) to FUNC_ENTER_NOAPI_NOERR and removing disused `done:` labels. * NFCI: add curly braces around a multiline statement. * Quiet a signed/unsigned comparison warning. * Add some documentation about library initialization and shutdown. * Make sure that the library is initialized, or else that initialization is already underway, before performing any VFD's initialization. * Committing clang-format changes * Committing clang-format changes * Reduce differences from `develop` branch. * Always initialize `tot_init`. * Committing clang-format changes * Fix typo: H5SL_init initializes skip lists, not VOL. * Remove H5_TERM_GLOBAL test in H5T_init. H5T_init was unusual in that it tested H5_TERM_GLOBAL and exited early if it was set. No other module initializers did that, and I cannot find any reason that should be necessary. Tests still pass when I remove it, so away it goes. * Use HD prefix. * Add function header comments. * Drop the intermediate variable, it's only used once. * Extract subroutine `H5FDperform_init(hid_t (*init)(void))` that initializes the library, if necessary, before calling its VFD-initializer argument. Use H5FDperform_init in the definition of the symbols H5FD_<vfd> (e.g., H5FD_SEC2), which may be evaluated before the library is initialized, like so: ``` ``` I implement H5FDperform_init in its own source file, H5FDperform.c, and exclude that file from trace processing because the `bin/trace` cannot deal with the function-pointer type. * Straggler from last: add new source file src/H5FDperform.c. * Committing clang-format changes * Add a missing file to the MANIFEST. * Switch to FUNC_ENTER_API_NOINIT in H5FDperform_init() and hbool_t in H5_term_library(). Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* VFD plugins (#602)jhendersonHDF2021-09-291-8/+23
| | | | | | | | | | | | | | | | | * 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
* Fixed many -Wreserved-id-macro warnings by fixing header guard spelling (#361)Sean McBride2021-02-231-3/+3
| | | | | | | | | | | | | | | | * Fixed many -Wreserved-id-macro warnings by fixing header guard spelling Removed leading underscore(s) from header guard spelling. Used 2 regexes: ` _H5(.*)_H` ` __H5(.*)_H` Applied case-insensitively to only .h files. * Modified scripts that generate header files to not use underscore prefix Interestingly, there was already no leading underscore in the trailing comment at the end of the file * Fixed remaining -Wreserved-id-macro warning not caught by regex
* 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.
* Enable H5Fopen to probe list of available VOL connectors when opening a (#182)jhendersonHDF2020-12-161-0/+13
| | | file
* Clang-format of source filesAllen Byrne2020-09-301-10/+5
|
* Minor refactoring based on 1.10 normalization workDana Robinson2020-08-171-2/+2
|
* Add info_to_str and str_to_info "management" callbacks for serializing andQuincey Koziol2018-11-211-4/+11
| | | | deserializing a connector's info object.
* VOL FEATUREDana Robinson2018-10-101-0/+1
|
* Brings H5Z and H5PL packages in sync with VOL integration branch.Dana Robinson2017-11-171-1/+6
|
* Major rework of H5PL package code before bringing VOL changesDana Robinson2017-07-141-2/+2
| | | | | | | | over. Brings coding standards in line with the rest of the library, enforces better software engineering principles, and makes everything more maintainable.
* 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.
* [svn-r26365] HDFFV-8520: Add plugin control APIs.Allen Byrne2015-03-051-13/+2
| | | | | | Update windows WiX packaging. h5committested
* [svn-r25615] Include plugin header change. H5PLextern.h and H5PLprivate.h ↵Allen Byrne2014-09-251-2/+12
| | | | | | have two opposing use cases, only the enum is common. Tested: local linux and windows
* [svn-r23549] Description:Quincey Koziol2013-04-041-3/+4
| | | | | | | | More misc. cleanups, but main change is to make an "extern" header file for the plugin interface. Tested on: Mac OSX/64 10.8.3 (amazon)
* [svn-r23543] Description:Quincey Koziol2013-04-041-1/+1
| | | | | | | | | Bring r23542 from desy_1_8 branch to trunk: Further revisions to dynamic library loading code, to clean it up. Tested on: Mac OSX/64 10.8.3 (amazon) w/parallel
* [svn-r23536] I corrected the copyright information and added some comment in ↵Raymond Lu2013-04-031-6/+5
| | | | | | H5Pocpl.c. Tested on jam - no code change.
* [svn-r23432] I added a new macro HDF5_PLUGIN_PRELOAD to skip plugin loading ↵Raymond Lu2013-03-221-1/+2
| | | | | | during data reading. Tested on koala and jam.
* [svn-r23380] Description:Quincey Koziol2013-03-191-22/+2
| | | | Review & cleanup code.
* [svn-r23373] Some updates for Windows.Raymond Lu2013-03-181-1/+1
| | | | Not tested.
* [svn-r23368] Correct names and add includes for windowsAllen Byrne2013-03-181-0/+13
|
* [svn-r23365] I opted out dirent.h for Windows.Raymond Lu2013-03-181-2/+3
| | | | Not tested yet.
* [svn-r23359] I added some macros and refactoring the code to prepare for ↵Raymond Lu2013-03-151-1/+0
| | | | | | Windows support. Tested on koala.
* [svn-r23346] First commit for DESY project. It has the basic functionality ↵Raymond Lu2013-03-131-0/+59
of loading dynamically filter libraries and a simple test for it. Tested on koala.