Commit Graph

230 Commits

Author SHA1 Message Date
Quincey Koziol
d8397a6f42 [svn-r5842] Purpose:
Code cleanup

Description:
    Change most (all?) HRETURN_ERROR macros to HGOTO_ERROR macros, along with
    HRETURN macros to HGOTO_DONE macros.  This unifies the error return path
    from functions and reduces the size of the library by up to 10% on some
    platforms.

    Additionally, I improved a lot of the error cleanup code in many routines.

Platforms tested:
    FreeBSD 4.6 (sleipnir) serial & parallel and IRIX64 6.5 (modi4) serial &
    parallel.
2002-08-08 11:52:55 -05:00
Quincey Koziol
99eee6dff9 [svn-r5814] Purpose:
Bug Fix

Description:
    It was possible to create corrupted metadata information (either in memory
    or in the file or both) with a parallel I/O program because of the way
    metadata writes were being handled for writes out of the metadata cache.

Solution:
    Added a dataset transfer property called "block before metadata write"
    which is used by the MPI-I/O and MPI-posix drivers to sync up all the
    processes before attempting a metadata write.  This property is currently
    only for metadata writes from the metadata cache.

Platforms tested:
    IRIX64 6.5 (modi4) w/parallel
2002-07-19 14:27:09 -05:00
Quincey Koziol
22385db35b [svn-r5582] Purpose:
Code cleanup

Description:
    Need to change FUNC_ENTER_NOINIT to FUNC_ENTER_API_NOINIT for
    H5dont_atexit()

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-06-10 16:15:09 -05:00
Quincey Koziol
e69e970a1c [svn-r5471] Purpose:
Code cleanup

Description:
    Broke the FUNC_ENTER macro into several macros, with more specialized
    uses (which followup mail will describe).  This was designed to move
    most/all of the checks which could be done at compile time to that point,
    instead of needlessly performing them (over & over :-) at run-time.
    This reduces the library's size (and thus staticly linked binaries) and
    has a minor speedup effect also.

Platforms tested:
    IRIX64 6.5 (modi4) with parallel & FORTRAN enabled, and additional testing
    on FreeBSD and Solaris immediately after the checkin.
2002-05-29 10:07:55 -05:00
Quincey Koziol
ca912c389e [svn-r5467] Purpose:
Code cleanup.

Description:
    Took Robb's recent ideas for improving the FUNC_ENTER/FUNC_LEAVE macros
    equivalents in the SAF library and adapted them to our library.  I added
    an additional macro which is equivalent to FUNC_ENTER:
        FUNC_ENTER_NOINIT - Has the API tracing code, etc. from FUNC_ENTER but
            none of the library or interface initialization code.  This is to
            be used _only_ for static functions and those which explicitly
            cannot have the library or interface initialization code enabled
            (like the API termination routines, etc.).

    This allowed many more of the functions in the library [but not all yet :-(]
    to be wrapped with FUNC_ENTER[_NOINIT]/FUNC_LEAVE pairs.

    It also reduced the size of the library and executables (by cutting out a
    bunch of code which was never executed), I'll e-mail the exact results when
    I've finished editing it.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-28 13:17:12 -05:00
Pedro Vicente Nunes
e12beea624 [svn-r5437]
Purpose:
   eliminate warnings on win32
Description:
   some conversion warnings were being issued
Solution:
    added some type casts
Platforms tested:
    w2000, linux

changed the HDmemset to include a cast in win32; this was just to eliminate a compiler
warning. probably the macro can also be used in unix

#ifdef WIN32
#define HDmemset(X,C,Z)		memset((void*)(X),C,Z)
#else /* WIN32 */
#define HDmemset(X,C,Z)		memset(X,C,Z)
#endif /* WIN32 */


the list of previous warnings was
D:\disk_w\hdf5\src\H5FDstdio.c(659) : warning C4244: 'initializing' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Fcontig.c(435) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Fcontig.c(497) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Fcontig.c(915) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Fcontig.c(982) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data

D:\disk_w\hdf5\src\H5Shyper.c(912) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(995) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(1936) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(2019) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(2862) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(2864) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(2948) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(3690) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(3692) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(3776) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
D:\disk_w\hdf5\src\H5Shyper.c(5167) : warning C4244: '+=' : conversion from '__int64 ' to 'unsigned int ', possible loss of data

D:\disk_w\hdf5\src\H5Tvlen.c(371) : warning C4244: '=' : conversion from 'unsigned __int64 ' to 'unsigned int ', possible loss of data
2002-05-18 02:24:49 -05:00
Albert Cheng
73683e4380 [svn-r5278] Purpose:
Migrate from configure macros of XYZ_ABC to H5_XYZ_ABC
Description:
    configure generates many macros definitions on the fly and
    were stored in src/H5config.h which is included by H5public.h.
    But other software that uses hdf5 may also run their own configure.
    There can be a clash in macro name space.  We decided awhile ago
    to prepend all generated macros with "H5_" to avoid conflicts.
    The process has started and this commit completes it (at least attempt
    to).
Solution:
    Many macros symbols (e.g. SIZEOF_xxx and HAVE_xxx were changed to
    H5_SIZEOF_xxx and H5_HAVE_xxx).  Then H5private.h no longer includes
    H5config.h.  This cuts H5config.h away from HDF5 source code.
Pending issues:
    The module of fortran and pablo are to be resolved in a different
    commit.
Platforms tested:
    eirene (parallel), arabica (solaris 7 --enable-fortran, --enable-cxx)
2002-04-28 03:34:17 -05:00
Quincey Koziol
b8dbd390db [svn-r4978] Purpose:
Code cleanup
Description:
    Cleanup compiler warnings found by the SGI compiler and gcc 3.0
Platforms tested:
    FreeBSD 4.5 w/gcc 3.0 (hack) && IRIX64 (modi4)
2002-02-16 21:51:21 -05:00
Quincey Koziol
aabfa5c03f [svn-r4813] Purpose:
Bug fix
Description:
    HDfprintf was not handling Microsoft's "%I64d" extension to printf for
    printing thier '__int64' type.
Solution:
    Added code to properly detect and use this extension.
Platforms tested:
    None!  (Kent will be testing shortly)
2002-01-11 10:41:48 -05:00
Quincey Koziol
47d88766db [svn-r4706] Purpose:
Code cleanup
Description:
    Tweaked internal error handling macros to reduce the size of the library's
    object code by about 10-20%.

    Also cleaned up some compiler warnings...

Platforms tested:
    FreeBSD 4.4 (sleipnir)
2001-12-12 13:40:09 -05:00
Quincey Koziol
137d18ffe8 [svn-r4618] Purpose:
Code cleanup
Description:
    Clean up threading macros and remove vestiges of old-style property lists.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-11-20 13:55:33 -05:00
Raymond Lu
5122df335c [svn-r4584]
Purpose:
    Switch from old property list to new generic property list.
Description:
    Mainly changed H5Pcreat, H5Pclose, H5Pcopy.
Platforms tested:
    IRIX64 6.5, FreeBSD, SunOS 5.7.
2001-11-02 14:46:36 -05:00
Raymond Lu
33189bd39b [svn-r4573]
Purpose:
    Switch mount property list to the new generic property list.
Platforms tested:
    IRIX64 6.5, SunOS 5.7, FreeBSD.
2001-10-25 14:52:10 -05:00
Raymond Lu
b6da4ea427 [svn-r4569]
Purpose:
    Generic Property List Change
Description:
    Changed file access list to the new generic list.
Platforms tested:
    IRIX64, SunOS5.7, FreeBSD
2001-10-24 13:02:27 -05:00
Raymond Lu
fe76b00dc6 [svn-r4543]
Purpose:
    Changed the file creation property list to the new generic property list.
Platform tested:
    IRIX64, SunOS5.7, FreeBSD
2001-10-15 14:36:48 -05:00
Raymond Lu
e3a137f39e [svn-r4517]
Purpose:
    Changed to the new generic property list for dataset creation property
    list.
Platforms tested:
    Arabica, modi4 and Hawkwind
2001-10-03 12:57:56 -05:00
Quincey Koziol
7a96b1a0d2 [svn-r4482] Purpose:
Kludge
Description:
    Since we're only about halfway through converting the internal use of
    property lists from the "old way" to the generic property lists, we turned
    off snapshots to avoid exposing lots of API changes to users, until the
    APIs settled down.

    Getting the snapshots rolling again seems to have become a priority, so
    some changes are going to have to be made now that were going to be
    postponed until we were completely finished with the conversion.  This
    requires that the old API functions be able to deal with both the old
    and new property lists smoothly.

Solution:
    Kludge together the property list code so that they can transparently handle
    dealing with both the old and new property lists

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-09-26 15:29:35 -05:00
Quincey Koziol
ed663577a5 [svn-r4473] Purpose:
Code cleanup for better compatibility with C++ compilers
Description:
    C++ compilers are choking on our C code, for various reasons:
        we used our UNUSED macro incorrectly when referring to pointer types
        we used various C++ keywords as variables, etc.
        we incremented enum's with the ++ operator.
Solution:
    Changed variables, etc.to avoid C++ keywords (new, class, typename, typeid,
        template)

    Fixed usage of UNUSED macro from this:
        char UNUSED *c
    to this:
        char * UNUSED c

    Switched the enums from x++ to x=x+1
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-09-25 12:46:32 -05:00
Quincey Koziol
e87fc517b8 [svn-r4355] Purpose:
Code cleanup (sorta)

Description:
    When the first versions of the HDF5 library were designed, I remembered
    vividly the difficulties of porting code from a 32-bit platform to a 16-bit
    platform and asked that people use intn & uintn instead of int & unsigned
    int, respectively.  However, in hindsight, this was overkill and
    unnecessary since we weren't going to be porting the HDF5 library to
    16-bit architectures.

    Currently, the extra uintn & intn typedefs are causing problems for users
    who'd like to include both the HDF5 and HDF4 header files in one source
    module (like Kent's h4toh5 library).

Solution:
    Changed the uintn & intn's to unsigned and int's respectively.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-08-14 17:09:56 -05:00
Quincey Koziol
95862451f7 [svn-r4324] Purpose:
New Features!
Description:
    Start migrating the internal use of property lists in the library from the
    older implementation to the new generic property lists.

    Currently, only the dataset transfer property lists are migrated to the
    new architecture, all the rest of the property list types are still using
    the older architecture.

    Also, the backward compatibility features are not implemented yet, so
    applications which use dataset transfer properties may need to make the
    following changes:
        H5Pcreate(H5P_DATASET_XFER) -> H5Pcreate_list(H5P_DATASET_XFER_NEW)
            and
        H5Pclose(<a dataset transfer property list>) -> H5Pclose_list(id)

    This still may have some bugs in it, especially with Fortran, but I should
    be wrapping up those later today.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-08-10 15:47:05 -05:00
Bill Wendling
09676ded1f [svn-r4021] Purpose:
Remove my fix...
Description:
    Quincey already put a fix up for the bug I fixed before I could put
    up my fix for the bug. So I'm retracting my fix.
2001-06-19 14:01:49 -05:00
Bill Wendling
0b008afcb4 [svn-r4020] Purpose:
Bug Fix
Description:
    On some platforms, long long is printed with the "ll" modifier.
    HDfprintf didn't handle this case.
Solution:
    Added code which checks if there's an "ll" modifier on the template.
    If so, then it uses that as the modifier.
Platforms tested:
    Kelgia and Dangermouse
2001-06-19 13:59:24 -05:00
Quincey Koziol
fd78a6021d [svn-r4019] Purpose:
Bug fix
Description:
    'll' type description wasn't being handled correctly in HDfprintf, causing
    testing failures.
Solution:
    Added tests for 'll' to HDfprintf's type description parsing.
Platforms tested:
    Solaris 2.7 (arabica)
2001-06-19 13:45:42 -05:00
Quincey Koziol
fbc0f37dc5 [svn-r4017] Purpose:
Code cleanup
Description:
    Several system header files needed to be included on Linux machines to
    get the prototypes for some of the system calls we are using.
Solution:
    Added a new feature test macro for including the <features.h>
    header on Linux machines, to set up compile macros for system header
    files.
Platforms tested:
    Linux (eirene), FreeBSD 4.3 (hawkwind)
2001-06-19 11:21:35 -05:00
Quincey Koziol
0a063ad481 [svn-r4014] Purpose:
Bug Fix
Description:
    HDfprintf wasn't aware of 'L' type modifier and was passing along the
    '%Ld' verbatim instead of printing a long long integer value.
Solution:
    Added 'L' to the type modifiers checked in HDfprintf
Platforms tested:
    Linux (eirene)
2001-06-19 09:01:09 -05:00
Bill Wendling
52ac5273d5 [svn-r4013] Purpose:
POSIX Removal
Description:
    Removed calls to POSIX functions and replaced them with the HD*
    equivalents.
Solution:
    Did just that. Also had to create two new HD* macros, the
    gettimeofday() and getrusage()
Platforms tested:
    Linux
2001-06-18 18:15:53 -05:00
Quincey Koziol
d41b9fffdf [svn-r4012] Purpose:
Clean up compiler warnings.
Description:
    Just code neatening mostly, some casts, etc.
Platforms tested:
    FreeBSD 4.3 (hawkwind)
2001-06-18 15:22:10 -05:00
Pedro Vicente Nunes
504bc34f60 [svn-r3974] code warrior port 2001-06-07 11:03:02 -05:00
Bill Wendling
1c61d72cf1 [svn-r3946] Purpose:
Code Simplification
Description:
    H5Pget_class() was being called from the H5.c module. Changed it so
    that it calls H5P_get_class() instead. Also, the H5Pget_class() and
    H5P_get_class() functions were identical. Changed so that
    H5Pget_class() calls H5P_get_class().
Platforms tested:
    Linux
2001-05-29 10:53:25 -05:00
Albert Cheng
d3764cd73d [svn-r3916] Purpose:
New feature
Description:
    Added verification of H5_VERS_INFO in H5check_version().
Platforms tested:
    Eirene (linux).
2001-05-12 12:33:27 -05:00
Bill Wendling
5e483d0184 [svn-r3781] Purpose:
Update
Description:
    Changed

        #include <hdf_file.h>

    construct to

        #include "hdf_file.h"

    so that the GNU compiler can more easily pick up the dependencies
    which it places in the .depend and Dependencies files. Also
    regenerated the Dependencies to go along with this.
Platforms tested:
    Linux
2001-04-05 12:29:14 -05:00
Albert Cheng
cb876a28a1 [svn-r3677] Purpose:
Bug fix (sort of)
Description:
    The RCSID string in H5public.h was causing the C++ code problem as it
    was included multiple times and C++ did not like multiple definitions
    of the same static variable.
Solution:
    Since we don't really make use of the RCSID strings as we have not
    installed it in all source files, we decided to remove it.
Platforms tested:
    eirene (linux), modi4 (IRIX64-64) both serial and parallel modes.
2001-03-20 16:32:24 -05:00
Quincey Koziol
7921315a33 [svn-r3304] Purpose:
Code update
Description:
    Remove ragged array code & tests from library before release.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2001-01-18 18:30:23 -05:00
Quincey Koziol
2725a29b0e [svn-r3236] Purpose:
Clean up code.
Description:
    Cleaned up various compiler warnings.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2001-01-03 20:31:33 -05:00
Robb Matzke
bad9e4d4a1 [svn-r3050] ./hdf5/src/H5.c
2000-12-01 Robb Matzke
        *: Removed empty lines from end of file?
2000-12-01 13:25:05 -05:00
Quincey Koziol
51f5bbc54f [svn-r3008] Purpose:
Code cleanup
Description:
    Several places in the code were using -2 as a default value for various
    features.  However, when a default value is returned from a function that
    is supposed to return negative on failure, it was causing confusion and
    extra work for users to check for the special value.
Solution:
    Replaced hard-coded -2 values in the code with symbolic names, then changed
    symbolic names to 0 instead of -2.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2000-11-28 11:18:42 -05:00
Quincey Koziol
0726621eaa [svn-r3005] Purpose:
Backward compatibility code
Description:
    Add in code to allow the library to emulate the v1.2 API and behavior.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2000-11-27 18:01:48 -05:00
Quincey Koziol
7b8b71ed9b [svn-r2891] Purpose:
Bug fix.
Description:
    Generic property list code wasn't getting initialized early enough to get
    the proper values into the macro/constants.
Solution:
    Call H5P_init() from H5_init_library().
Platforms tested:
    FreeBSD 4.1.1 (hawkwind)
2000-11-13 19:05:05 -05:00
Quincey Koziol
04223a18f4 [svn-r2866] Purpose:
Code cleanup
Description:
    Found more "Have_foo" usage and converted them to "H5_HAVE_foo"
Platforms tested:
    FreeBSD 4.1.1 (hawkwind)
2000-11-11 10:58:12 -05:00
Quincey Koziol
ba28c64ba7 [svn-r2652] Purpose:
Maintainance & performance enhancements
Description:
    Re-arranged header files to protect private symbols better.

    Changed optimized regular hyperslab I/O to compute the offsets more
    efficiently from previous method of using matrix operations.

    Added sequential I/O operations at a more abstract level (at the same level
    as H5F_arr_read/write), to support the optimized hyperslab I/O.

Platforms tested:
    Solaris 2.6 (baldric) & FreeBSD 4.1.1 (hawkwind)
2000-10-10 02:43:38 -05:00
Bill Wendling
29a7f62218 [svn-r2548] Added #include <sys/resource.h> for the struct getrusage declaration.
Przemek Klosowski, Ph.D. <przemek@nist.gov> reported this problem on
Linux RH 6.1 systems.
2000-09-14 12:15:12 -05:00
Quincey Koziol
47515ad49c [svn-r2459] Added public API function (H5set_free_list_limits) to allow limits to be
placed on how much memory is used by the free lists before they are garbage
collected.  The default is to have no limit, with garbage collection only
occurring when they cannot allocate memory.
2000-08-04 08:34:05 -05:00
Quincey Koziol
2c8c5f9692 [svn-r2444] Checkpoint the Generic Property implementation. It's not active yet, but it's
close.  This shouldn't interfere with other development work.  (I think.. :-)
2000-07-25 12:35:17 -05:00
Quincey Koziol
ae69e30f76 [svn-r2318] Rearranged metadata caching to put caching information in the objects being
cached instead of in separate structures.  This reduces the amount of memory
the hash table uses by about half.  This is the initial step along the path of
speeding up the metadata caching.
2000-06-01 18:45:11 -05:00
Quincey Koziol
d894ed6d0d [svn-r2276] Modifed thread-safety code to more closely align with rest of HDF5 coding
standards.
2000-05-19 09:51:50 -05:00
Chee-Wai Lee
e26f4e5eed [svn-r2264] Added Thread-safe feature. This is the phase 1 implementation
that all HDF5 API functions are protected by a mutex lock. Basically,
serialized all API calls.  To use it, use
configure --enable-threadsafe --with-pthread
2000-05-18 14:13:33 -05:00
Quincey Koziol
2ec6fd667b [svn-r2151] Modified H5_term_library to not reported errors when H5Eset_auto(NULL,NULL)
has turned off error reporting in the library.
    Also, changed the way property lists are managed and closed so that they
can be automatically closed when the library terminates.
2000-04-15 15:28:12 -05:00
Quincey Koziol
04404b74db [svn-r2122] Fixed small problem with va_arg & shorts and floats in HDfprintf. This closes
bug #401.
2000-04-12 14:47:55 -05:00
Quincey Koziol
02e4ee5edf [svn-r2073] Added free-list code to the library and took out the older "temporary buffer"
code, since the functionality was superceded.  See the followup document for
details on the free-list code.
2000-04-04 16:00:31 -05:00
Albert Cheng
2c7bbf697f [svn-r1881] Changed all the HAVE_PARALLEL and HAVE_GASS macros to the new
form of H5_HAVE_PARALLEL and H5_HAVE_GASS.
1999-12-17 09:37:22 -05:00