summaryrefslogtreecommitdiffstats
path: root/src/H5.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-04-22 17:26:01 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-04-22 17:26:01 (GMT)
commit1c1679b2d43a14170ee6759f578a2ecad4ab56c1 (patch)
treee8462f942e88374904821fd56557fba95c99ba6d /src/H5.c
parent91a34f543da20aee0de3ad2ec2cc58f86750bcf6 (diff)
downloadhdf5-1c1679b2d43a14170ee6759f578a2ecad4ab56c1.zip
hdf5-1c1679b2d43a14170ee6759f578a2ecad4ab56c1.tar.gz
hdf5-1c1679b2d43a14170ee6759f578a2ecad4ab56c1.tar.bz2
[svn-r356] Changes since 19980421
---------------------- ./bin/release ./src/H5.c ./src/H5private.h ./src/H5public.h ./src/H5Fpublic.h Changed the version number constants to names that begin with H5_VERS_ and added macros that check that the version numbers in the include files match the version number of the library. ./MANIFEST ./html/H5.user.html ./html/Version.html [NEW] ./html/version.obj [NEW] ./html/version.gif [NEW] Documented version numbers and the macros, constants, and functions associated with them. ./bin/versinc A perl script that increments the minor version number and sets the patch level back to zero. This is intended to be invoked from the top of the source tree by a cvs commit anywhere in the source tree. Quincey? ./src/H5O.c ./src/H5Oprivate.h Added H5O_count() to count the number of object header messages of a particular type. Quincey needs this for the attribute package. ./test/dsets.c Fixed warnings. Enabled the small strip-mine buffer test. ./config/linux Added optimizations for the Pentium-Pro for production mode.
Diffstat (limited to 'src/H5.c')
-rw-r--r--src/H5.c65
1 files changed, 56 insertions, 9 deletions
diff --git a/src/H5.c b/src/H5.c
index acdb5d1..22fc7ea 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -312,13 +312,58 @@ H5version(unsigned *majnum, unsigned *minnum, unsigned *relnum,
FUNC_ENTER(H5version, FAIL);
/* Set the version information */
- if (majnum) *majnum = HDF5_MAJOR_VERSION;
- if (minnum) *minnum = HDF5_MINOR_VERSION;
- if (relnum) *relnum = HDF5_RELEASE_VERSION;
- if (patnum) *patnum = HDF5_PATCH_VERSION;
+ if (majnum) *majnum = H5_VERS_MAJOR;
+ if (minnum) *minnum = H5_VERS_MINOR;
+ if (relnum) *relnum = H5_VERS_RELEASE;
+ if (patnum) *patnum = H5_VERS_PATCH;
FUNC_LEAVE(ret_value);
}
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5vers_check
+ *
+ * Purpose: Verifies that the arguments match the version numbers
+ * compiled into the library. This function is intended to be
+ * called from user to verify that the versions of header files
+ * compiled into the application match the version of the hdf5
+ * library.
+ *
+ * Return: Success: SUCCEED
+ *
+ * Failure: abort()
+ *
+ * Programmer: Robb Matzke
+ * Tuesday, April 21, 1998
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5vers_check (unsigned majnum, unsigned minnum, unsigned relnum,
+ unsigned patnum)
+{
+ /* Don't initialize the library quite yet */
+
+ if (H5_VERS_MAJOR!=majnum || H5_VERS_MINOR!=minnum ||
+ H5_VERS_RELEASE!=relnum || H5_VERS_PATCH!=patnum) {
+ fputs ("Warning! The HDF5 header files included by this application "
+ "do not match the\nversion used by the HDF5 library to which "
+ "this application is linked. Data\ncorruption or segmentation "
+ "faults would be likely if the application were\nallowed to "
+ "continue.\n", stderr);
+ fprintf (stderr, "Headers are %u.%u.%u%c, library is %u.%u.%u%c\n",
+ majnum, minnum, relnum, 'a'+patnum,
+ H5_VERS_MAJOR, H5_VERS_MINOR, H5_VERS_RELEASE,
+ 'a'+H5_VERS_PATCH);
+ fputs ("Bye...\n", stderr);
+ abort ();
+ }
+ return SUCCEED;
+}
+
/*-------------------------------------------------------------------------
* Function: H5open
@@ -792,8 +837,10 @@ H5_timer_begin (H5_timer_t *timer)
#ifdef HAVE_GETRUSAGE
getrusage (RUSAGE_SELF, &rusage);
- timer->utime = rusage.ru_utime.tv_sec + rusage.ru_utime.tv_usec/1e6;
- timer->stime = rusage.ru_stime.tv_sec + rusage.ru_stime.tv_usec/1e6;
+ timer->utime = (double)rusage.ru_utime.tv_sec +
+ (double)rusage.ru_utime.tv_usec/1e6;
+ timer->stime = (double)rusage.ru_stime.tv_sec +
+ (double)rusage.ru_stime.tv_usec/1e6;
#else
timer->utime = 0.0;
timer->stime = 0.0;
@@ -830,9 +877,9 @@ H5_timer_end (H5_timer_t *sum/*in,out*/, H5_timer_t *timer/*in,out*/)
assert (timer);
H5_timer_begin (&now);
- timer->utime = now.utime - timer->utime;
- timer->stime = now.stime - timer->stime;
- timer->etime = now.etime - timer->etime;
+ timer->utime = MAX(0.0, now.utime - timer->utime);
+ timer->stime = MAX(0.0, now.stime - timer->stime);
+ timer->etime = MAX(0.0, now.etime - timer->etime);
if (sum) {
sum->utime += timer->utime;