Commit Graph

52 Commits

Author SHA1 Message Date
Quincey Koziol
ba087ce2b5 Clean up private / package / static namespace issues (function naming, which
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.
2020-08-22 14:00:44 -05:00
David Young
a3462bf164 Merge pull request #2325 in HDFFV/hdf5 from ~DYOUNG/werror:h5t_copy to develop
Merged per discussion with Elena.

* commit '3f903a441ad84001ea66589728bd8b036b6fdfca':
  Take out the temporary performance tests.
  Make calls through a function pointer.  Use the same number of arguments, always.
  Increase iterations, provide a baseline for no-op, simplify the overhead case a bit.
  Temporarily add some code that measures the time to run the simplest possible H5T__copy_all()-like routine 10 million times and then measures the version with FUNC_ENTER_STATIC/_LEAVE_NOAPI and a HGOTO_ERROR() statement.
  H5T_copy() constification plus Quincey's contributions.
2020-02-25 13:59:52 -06:00
Dana Robinson
55fc5067b6 Updated enums in VOL va_lists to be passed as ints. 2018-12-18 09:16:46 -08:00
Quincey Koziol
1daa7b830a Switch driver | plugin => connector. 2018-11-04 01:27:23 -05:00
Quincey Koziol
d66d5e01c0 Refactor and standarize file object callbacks, including some fixes on the
dataset callbacks.
2018-10-31 18:18:45 -05:00
Quincey Koziol
0df6e44a6e Squashed commit of private branch changes to support stackable VOL plugins.
modified:   test/dsets.c
2018-10-24 23:52:47 -05:00
Dana Robinson
e962df1591 VOL FEATURE 2018-10-10 08:10:15 -07:00
Dana Robinson
a56b4db4ae Remainder of vol_normalization changes (dataset, attribute, files, objects). 2018-09-24 12:23:41 -07:00
Dana Robinson
680cf4d946 Removed 'VOL' versions of FUNC_ENTER macros as well as empty functions
orginally intended to support the full SWMR feature.
2018-09-18 14:10:14 -07:00
Dana Robinson
18fbdebb97 Cleaned up H5Fmount/unmount code. 2018-06-06 23:08:29 -07:00
Dana Robinson
91089de53f Normalization with vol_integration branch. 2018-06-06 21:34:11 -07:00
Quincey Koziol
eecf997bf5 Remove redundant 'is_collective' parameter from H5CX_set_loc. 2018-03-26 23:19:08 -05:00
Quincey Koziol
d812c6fe60 Cleanup API context function usage. 2018-03-18 22:51:19 -05:00
Quincey Koziol
f38864920d Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into merge_func_enter_vol
Plus initial steps toward merging API context push into FUNC_ENTER_API* macros
2018-03-18 18:36:49 -05:00
Quincey Koziol
4a17aff408 Add API context interface and use it throughout the library. 2018-03-15 16:54:30 -05:00
Dana Robinson
ec1e00a55f Normalization with VOL integration branch. 2017-12-05 10:41:54 -08:00
Larry Knox
89fbe00dec Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to 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.
2017-04-25 16:05:36 -05:00
Quincey Koziol
4fad103187 Bring changes to I/O parameters from page_buffering branch. 2017-03-13 08:21:28 -07:00
Dana Robinson
a8d1aff235 Tentative fix for valgrind issues related to EoC.
Adds /*out*/ parameters to H5O_close() and H5F_try_close() so
that H5D/G_close() will know when H5O_close() has triggered a
file close and thus the file struct is not reliable.

Also removes the H5F_CLOSING() macro and related which were
formerly used to check if the file was closing.
2016-11-26 10:47:32 -05:00
Mohamad Chaarawi
63c90e5c67 [svn-r29081] - merge in the phdf5_metadata_opt/ branch with the collective metadata optimizations.
- rename H5AC_dxpl_id to H5AC_ind_read_dxpl_id and update all usage in the library

tested on bb-8 with parallel and serial.
2016-02-10 15:48:34 -05:00
Quincey Koziol
1023374492 [svn-r27768] Description:
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
2015-09-13 22:58:59 -05:00
Mohamad Chaarawi
fc45d5fcb0 [svn-r27133] - Add a new attribute function characterstic for format:
* 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.
2015-06-01 14:38:09 -05:00
Quincey Koziol
9c9ee2008c [svn-r21919] Description:
Refactor function name macros and simplify the FUNC_ENTER macros, to clear
away the cruft and prepare for further cleanups.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug, production & parallel
2012-02-08 22:13:27 -05:00
Quincey Koziol
d7e8828f70 [svn-r21126] Description:
Clean up some compiler warnings, but mainly an interim checkin on the
path of reducing code coupling in the library by removing most of the places
which were accessing H5F package definitions.

Tested on:
    Mac OS X/32 10.6.8 (amazon) w/debug
    FreeBSD/32 8.2 (loyalty) w/debug
    FreeBSD/64 8.2 (freedom) w/debug
    Linux/64 2.6 (heiwa) w/debug
    Linux/64 2.6 (ember) w/parallel
2011-07-19 17:47:59 -05:00
Quincey Koziol
c956c2f03b [svn-r20219] Description:
Tell the VFL flush call that the file will be closing, allowing
the VFDs to avoid sync'ing the file (particularly valuable in parallel).

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                w/szip filter, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
2011-03-09 21:56:55 -05:00
Quincey Koziol
74c8b68aca [svn-r18702] Description:
Bring r18672 from metadata journaling "merging" branch to trunk:

	Mostly changes to move to only using one 'user data' parameter for
calls to H5AC_protect(), along with some minor reformatting code cleanups.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.6.3 (amazon) in debug mode
        Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2010-05-05 08:39:56 -05:00
Quincey Koziol
e3f4e81b5f [svn-r17413] Description:
Remove vestigial intermediate routine for flushing file and move it
into API routine.  Also, remove private, unused (now) 'H5F_FLUSH_DOWN' symbol
from public header file.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.8 (amazon) in debug mode
        Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-08-24 10:07:17 -05:00
Quincey Koziol
1a3c594abf [svn-r17412] Description:
Seperate 'flush' functionality from 'destroy' functionality at the
H5F level also.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.8 (amazon) in debug mode
        Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-08-23 20:45:16 -05:00
Quincey Koziol
02775c2349 [svn-r17408] Description:
Move flush operation on mounted file hierarchy into H5Fmount module.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.8 (amazon) in debug mode
        Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-08-21 17:25:13 -05:00
Quincey Koziol
634c7c5a93 [svn-r16279] Description:
Bring revision 16278 back from revise_chunks branch:

	Update layout information in DCPL to unify all information in one
underlying property and switch to using H5O_layout_t for storing it, which
simplifies things considerably.

	Also, fix many compiler warnings.

Tested on:
	FreeBSD/32 6.3 (duty) in debug mode
	(Original patch tested on many machines)
2009-01-08 12:27:15 -05:00
Neil Fortner
e86e9f49f6 [svn-r16082] Purpose: Fix a problem in the file unmounting code
Description: Fixes a problem in H5F_close_mounts where it wouldn't correctly
reshape the "child" array when unmounting files.  Test added for this case.
Also fixed a potential bug in H5F_unmount where that routine reshapes the child
array.

Tested: kagiso linew smirom (h5committest)
2008-11-17 13:48:37 -05:00
Quincey Koziol
bdd7d59902 [svn-r15628] Description:
Remove trailing whitespace from C/C++ source files, with the following
script:

    foreach f (*.[ch] *.cpp)
        sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
    end

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    No need for h5committest, just whitespace changes...
2008-09-16 10:52:51 -05:00
Quincey Koziol
f8a796ebfc [svn-r15510] Description:
Clean up warnings & formatting

Tested on:
	Mac OS X/32 10.5.4 (amazon)
	More tests forthcoming
2008-08-21 15:30:19 -05:00
Neil Fortner
e980307ed9 [svn-r15451] Purpose: Fix various problems that were occurring when using mounted files.
Description:
Moved mount table from top file structure to shared file structure.  Moved
parent out of mount table and back into top file structure.  Mounted files can
now be accessed from any handle of the parent file.  Changes to how files are
closed.  Stricter cycle checking on mounted files.  Removed unused function
H5F_has_mount().

Tested:
committest in 1.8 branch.  Committing now due to the urgency of the fix.  No
changes here are specific to the trunk, but I will keep an eye on the daily
tests.
2008-08-07 16:49:05 -05:00
Quincey Koziol
516c63299f [svn-r15367] Description:
Add check to avoid mounting the a file on a group twice, then the mounts
are done on the same HDF5 file, but opened with separate H5Fopen calls.

    Also add new 'mounted' flag to the H5G_info_t struct, queried with the
H5Gget_info() API call, to allow applications to detect and avoid this
situation.

    This probably fixes Bz#1070 also, I'll check with Dan Anov (who reported
a different sort of behavior, but seems to have the same underlying problem).

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Linux/64 2.6 (chicago)
2008-07-15 16:00:15 -05:00
Quincey Koziol
68c01f91d9 [svn-r14154] Description:
Finish deprecating last H5G symbol (H5G_obj_t) - yay!

	Lots of misc. library fixes to remove confusion between links and
objects.  The tools could still use another pass, to remove h5trav_type_t type
and make the correct distinction between links & objects.

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        AIX/32 5.3 (copper) w/FORTRAN, w/parallel, in production mode
        Mac OS X/32 10.4.10 (amazon) in debug mode
2007-09-25 17:18:33 -05:00
Mike McGreevy
2996c917af [svn-r13475] There's a configure issue linking szip's shared libraries when running on kagiso.
The static szip libraries are working as intended, but when shared szip 
libraries are present and intended for use they cannot be opened. A check 
has been implemented to test if shared szip libraries are functional on 
current platform. If they are not, and the user is trying to use them, 
szip is now disbaled and the user is informed.

This issue occurs on kagiso, and the resolution was tested on kagiso.
2007-03-08 11:57:36 -05:00
Albert Cheng
ed7d456e51 [svn-r13253] Updated all C and C++ style source code files with the THG copyright notice.
Tested platform:
Kagiso only since it is only a comment block change.  If it works in one
machine, it should work in all, I hope.  Still need to check the parallel
build on copper.
2007-02-07 09:56:24 -05:00
James Laird
e100695eb0 [svn-r13068] Ran bin/reconfigure. Some of the scripts have been changed or haven't
been run in a while, so many of the source files were updated with
tracing macros, etc.  No code changes by me.

Tested on kagiso and smirom.
2006-12-18 14:16:17 -05:00
Quincey Koziol
0b1bb5bda1 [svn-r12907] Description:
Finish refactoring internal link deletion code, to make it possible to
wrap up the H5Ldelete_by_idx() coding.

Tested on:
    Linxu/32 2.6 (chicago)
    Linxu/64 2.6 (chicago2)
2006-11-13 21:29:15 -05:00
Quincey Koziol
2b635fee4d [svn-r12866] Description:
Clean up initialization of H5F & H5L APIs.

Tested on:
    Linux/64 2.6 (chicago2)
2006-11-06 12:47:02 -05:00
Quincey Koziol
19c9657f7c [svn-r12842] Description:
Refactor generic property list initialization code to put property list
specific routines in property list modules, instead of scattered to the four
winds.  Also, introduce property list class initialization objects, to make
adding new property list classes in the library easier.

    Fix daily test failure by using H5Pget_elink_prefix() API routine instead
of looking at the "raw" generic property list information.

Tested on:
    Mac OS X/32 10.4.8 (amazon)
    FreeBSD/32 4.11 (sleipnir) w/threadsafe
    Linux/32 2.4 (heping) w/C++ & FORTRAN
    Linux/64 2.4 (mir) w/build-all & 1.6 compat
2006-11-01 23:54:19 -05:00
James Laird
75d22ed839 [svn-r12596] Refactored how external files are opened and closed.
Object header locations (H5O_loc_t's) can now "hold open" a file and
decrement its open object count when they close.  This means that
locations (H5O_loc_t's and H5G_loc_t's) should always be freed.

Added more thorough tests to ensure that external files are closed.
2006-08-18 15:48:54 -05:00
James Laird
3e755623cb [svn-r12528] Added User-Defined links to the library.
Users can create external links using H5L_create_external().  These links
point to an object in another HDF5 file.  Users can alter the behavior of
external links or create new kinds of links by registering callbacks
using the H5L interface.

Added tests, tools support, etc.

Also a number of other, minor changes have been made (some restructuring of
the H5L interface, for instance).

Additional documentation and examples are forthcoming.
2006-08-02 18:41:53 -05:00
Quincey Koziol
83929ea716 [svn-r11838] Purpose:
Bug fix

Description:
    Retrieving an object's name could fail (in various ways) under certain
circumstances (mostly having to do with mounted files).

Solution:
    Re-write & simplify "get object name" code to fix error in a better way
than adding yet another hack to the previous pile of hacks... :-)

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    h5committest
2005-12-26 00:28:18 -05:00
Quincey Koziol
a1708eb023 [svn-r11712] Purpose:
New feature

Description:
    Check in baseline for compact group revisions, which radically revises the
source code for managing groups and object headers.

WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!
WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!

    This initiates the "unstable" phase of the 1.7.x branch, leading up
to the 1.8.0 release.  Please test this code, but do _NOT_ keep files created
with it - the format will change again before the release and you will not
be able to read your old files!!!

WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!
WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!


Solution:
    There's too many changes to really describe them all, but some of them
include:
    - Stop abusing the H5G_entry_t structure and split it into two separate
        structures for non-symbol table node use within the library: H5O_loc_t
        for object locations in a file and H5G_name_t to store the path to
        an opened object.  H5G_entry_t is now only used for storing symbol
        table entries on disk.

    - Retire H5G_namei() in favor of a more general mechanism for traversing
        group paths and issuing callbacks on objects located.  This gets us out
        of the business of hacking H5G_namei() for new features, generally.

    - Revised H5O* routines to take a H5O_loc_t instead of H5G_entry_t

    - Lots more...

Platforms tested:
    h5committested and maybe another dozen configurations.... :-)
2005-11-14 21:55:39 -05:00
Quincey Koziol
5ad2673fde [svn-r11386] Purpose:
Code cleanup/reorganization

Description:
    Merge back some more changes extracted from the "compact group" set.
This bunch cleans up and prepares the H5G_* routines for eventual import of
new features.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Mac OS X.4
2005-09-12 09:29:54 -05:00
Quincey Koziol
6b45f5172c [svn-r11245] Purpose:
Code cleanup

Description:
    Trim trailing whitespace, which is making 'diff'ing the two branches
difficult.

Solution:
    Ran this script in each directory:

foreach f (*.[ch] *.cpp)
    sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end


Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-13 15:53:35 -05:00
Quincey Koziol
502b4c206d [svn-r11215] Purpose:
Bug fix & code cleanup

Description:
    Fix another bug in the file mounting code and refactor the unmount
code that it is simpler.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Too minor to require h5committest
2005-08-08 13:41:35 -05:00
Quincey Koziol
bb31e94a92 [svn-r11093] Purpose:
Bug fix

Description:
    Rewrite code for mounting files to clean up layers of kludges and implement
a much cleaner and more maintainable design.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-07-21 09:48:26 -05:00