summaryrefslogtreecommitdiffstats
path: root/src/H5private.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-11-18 18:40:09 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-11-18 18:40:09 (GMT)
commit8bb8649482550f56a48f3d732d0bc42ae4de446a (patch)
tree8961748dfdc7873f4dc7c7ac148d65e4a38b43dd /src/H5private.h
parent8aa4f542004baf98f0f5f5630c0044ae7059b8ce (diff)
downloadhdf5-8bb8649482550f56a48f3d732d0bc42ae4de446a.zip
hdf5-8bb8649482550f56a48f3d732d0bc42ae4de446a.tar.gz
hdf5-8bb8649482550f56a48f3d732d0bc42ae4de446a.tar.bz2
[svn-r925] Changes since 19981116
---------------------- ./INSTALL.parallel [NEW] We're beginning to unify some of the parallel installation steps. This file will contain general information for installing the parallel library. It's not complete yet. ./configure.in ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] Check for xdr_int() in libnsl required on Solaris when linking with hdf4. It's found on the Irix system I tested which complains that `-lnsl' didn't resolve any symbols. Oh well. Fixed the order of searching for libdf and libmfhdf for hdf4 linking. ./configure.in ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] ./src/H5Z.c Check for compress() in libz in order to find older versions of the library that will still work for hdf4. Added a separate check for compress2() that hdf5 will use. ./configure.in ./configure [REGENERATED] ./src/H5config.h.in [REGENERATED] ./src/H5.c ./src/H5private.h ./src/H5A.c ./src/H5B.c ./src/H5Bprivate.h ./src/H5D.c ./src/H5F.c ./src/H5Farray.c ./src/H5Fcore.c ./src/H5Ffamily.c ./src/H5Fistore.c ./src/H5Flow.c ./src/H5Fmpio.c ./src/H5Fprivate.h ./src/H5Fsec2.c ./src/H5Fsplit.c ./src/H5Fstdio.c ./src/H5Gent.c ./src/H5Gnode.c ./src/H5Gpkg.h ./src/H5Gprivate.h ./src/H5HG.c ./src/H5HL.c ./src/H5O.c ./src/H5Oattr.c ./src/H5Ocomp.c ./src/H5Ocont.c ./src/H5Odtype.c ./src/H5Oefl.c ./src/H5Ofill.c ./src/H5Olayout.c ./src/H5Omtime.c ./src/H5Oname.c ./src/H5Oprivate.h ./src/H5Osdspace.c ./src/H5Oshared.c ./src/H5Ostab.c ./src/H5R.c ./src/H5RA.c ./src/H5Sall.c ./src/H5Shyper.c ./src/H5Snone.c ./src/H5Spoint.c ./src/H5Sprivate.h ./src/H5Sselect.c ./src/H5T.c ./src/H5Tbit.c ./src/H5Tconv.c ./src/H5Tpkg.h ./src/H5V.c ./test/bittests.c ./test/gheap.c ./test/hyperslab.c ./test/istore.c ./test/tmeta.c ./test/trefer.c ./test/tselect.c ./tools/h5debug.c ./tools/h5tols.c Added checks for Posix.1g types like `int8_t'. If not defined then H5private.h defines them. Changed all `int8' etc. to `int8_t'. ./src/H5A.c ./src/H5D.c ./src/H5F.c ./src/H5G.c ./src/H5I.c ./src/H5P.c ./src/H5R.c ./src/H5RA.c ./src/H5S.c ./src/H5T.c ./src/H5TB.c ./src/H5Z.c Calling H5*_term_interface() resets interface_initialize_g to FALSE so a subsequent call to H5open() (implied or explicit) reinitializes global variables properly. ./src/H5private.h ./src/H5Oefl.c ./src/H5S.c Changed MAX_SIZET, MAX_SSIZET, MAX_HSIZET, and MAX_HSSIZET to SIZET_MAX, SSIZET_MAX, HSIZET_MAX, and HSSIZE_MAX to they match the Posix.1 constants in <limits.h>. ./src/H5T.c ./src/H5Tconv.c ./src/H5Tpkg.h ./src/H5Tprivate.h ./src/H5detect.c Added 36 more integer hardware conversion functions to the type conversion table for conversions to/from `long long' and `unsigned long long'. The `long long' names will be changed shortly to make them portable to Win32. Changed H5T_init() to H5T_native_open() and added an H5T_native_close() to open and close the predefined native data types. Increased the initial size of the type conversion table from 64 to 128 entries. Reordered the 90 new integer conversion functions so the names that are printed favor `int' over `short' or `long' when two of them are the same. ./test/dtypes.c Added hardware and software integer conversion tests for the 56 functions I added recently but not the additional 36 checked in this time. That will come next. Call H5close() after each test so type conversion statistics are easier to follow. Try this: $ HDF5_DEBUG=t ./dtypes Added more debugging output for when things go wrong. ./src/H5private.h Removed trailing carriage-returns inserted by broken operating system ;-)
Diffstat (limited to 'src/H5private.h')
-rw-r--r--src/H5private.h136
1 files changed, 90 insertions, 46 deletions
diff --git a/src/H5private.h b/src/H5private.h
index f32b9a8..f9e16f4 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -23,15 +23,14 @@
# include <errno.h>
# include <fcntl.h>
# include <float.h>
+# include <limits.h>
# include <math.h>
# include <stdarg.h>
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
-# include <limits.h>
#endif
-
/*
* If _POSIX_VERSION is defined in unistd.h then this system is Posix.1
* compliant. Otherwise all bets are off.
@@ -186,12 +185,6 @@
# define SIGN(a) ((a)>0 ? 1 : (a)<0 ? -1 : 0)
#endif
-/* maximum value of various types */
-#define MAX_SIZET ((hsize_t)(size_t)(ssize_t)(-1))
-#define MAX_SSIZET ((hsize_t)(ssize_t)((size_t)1<<(8*sizeof(ssize_t)-1)))
-#define MAX_HSIZET ((hsize_t)(hssize_t)(-1))
-#define MAX_HSSIZET ((hsize_t)1<<(8*sizeof(hssize_t)-1))
-
/*
* HDF Boolean type.
*/
@@ -203,45 +196,80 @@
#endif
/*
- * Numeric data types
+ * Numeric data types. Some of these might be defined in Posix.1g, otherwise
+ * we define them with the closest available type which is at least as large
+ * as the number of bits indicated in the type name.
*/
-typedef char char8;
-typedef signed char int8;
-typedef unsigned char uchar8, uint8;
+#if SIZEOF_INT8_T==0
+typedef signed char int8_t;
+#endif
-#if SIZEOF_SHORT==2
-typedef short int16;
-typedef unsigned short uint16;
-#else
-typedef int int16; /*not really */
-typedef unsigned uint16; /*not really */
+#if SIZEOF_UINT8_T==0
+typedef unsigned char uint8_t;
#endif
-#if SIZEOF_INT==4
-typedef int int32;
-typedef unsigned int uint32;
-#elif SIZEOF_LONG==4
-typedef long int32;
-typedef unsigned long uint32;
-#else
-typedef int int32; /*not really */
-typedef unsigned uint32; /*not really */
-#endif
-
-#if SIZEOF_INT==8
-typedef int int64;
-typedef unsigned uint64;
-#elif SIZEOF_LONG==8
-typedef long int64;
-typedef unsigned long uint64;
-#elif SIZEOF_LONG_LONG==8
-typedef long long int64;
-typedef unsigned long long uint64;
-#elif SIZEOF___INT64==8
-typedef __int64 int64;
-typedef unsigned __int64 uint64;
-#else
-# error "no 64-bit integer type"
+#if SIZEOF_INT16_T==0
+# if SIZEOF_SHORT==2
+typedef short int16_t;
+# else
+typedef int int16_t; /*not really */
+# endif
+#endif
+
+#if SIZEOF_UINT16_T==0
+# if SIZEOF_SHORT==2
+typedef unsigned short uint16_t;
+# else
+typedef unsigned uint16_t; /*not really */
+# endif
+#endif
+
+#if SIZEOF_INT32_T==0
+# if SIZEOF_INT==4
+typedef int int32_t;
+# elif SIZEOF_LONG==4
+typedef long int32_t;
+# else
+typedef int int32_t; /*not really */
+# endif
+#endif
+
+#if SIZEOF_UINT32_T==0
+# if SIZEOF_INT==4
+typedef unsigned int uint32_t;
+# elif SIZEOF_LONG==4
+typedef unsigned long uint32_t;
+# else
+typedef unsigned uint32_t; /*not really */
+# endif
+#endif
+
+#if SIZEOF_INT64_T==0
+# if SIZEOF_INT==8
+typedef int int64_t;
+# elif SIZEOF_LONG==8
+typedef long int64_t;
+# elif SIZEOF_LONG_LONG==8
+typedef long long int64_t;
+# elif SIZEOF___INT64==8
+typedef __int64 int64_t;
+# else
+# error "no signed 64-bit integer type"
+# endif
+#endif
+
+#if SIZEOF_UINT64_T==0
+# if SIZEOF_INT==8
+typedef unsigned uint64_t;
+# elif SIZEOF_LONG==8
+typedef unsigned long uint64_t;
+# elif SIZEOF_LONG_LONG==8
+typedef unsigned long long uint64_t;
+# elif SIZEOF___INT64==8
+typedef unsigned __int64 uint64_t;
+# else
+# error "no unsigned 64-bit integer type"
+# endif
#endif
#if SIZEOF_FLOAT==4
@@ -269,10 +297,26 @@ typedef unsigned uintn;
* File addresses.
*/
typedef struct {
- uint64 offset; /*offset within an HDF5 file */
+ uint64_t offset; /*offset within an HDF5 file */
} haddr_t;
-#define H5F_ADDR_UNDEF {((uint64)(-1L))}
+#define H5F_ADDR_UNDEF {((uint64_t)(-1L))}
+
+/*
+ * Maximum and minimum values. These should be defined in <limits.h> for the
+ * most part.
+ */
+#ifndef LLONG_MAX
+# define LLONG_MAX ((long long)(((unsigned long long)1 \
+ <<(8*sizeof(long long)-1))-1))
+# define ULLONG_MAX ((unsigned long long)((long long)(-1)))
+#endif
+#ifndef SIZET_MAX
+# define SIZET_MAX ((hsize_t)(size_t)(ssize_t)(-1))
+# define SSIZET_MAX ((hsize_t)(ssize_t)((size_t)1<<(8*sizeof(ssize_t)-1)))
+#endif
+#define HSIZET_MAX ((hsize_t)(hssize_t)(-1))
+#define HSSIZET_MAX ((hsize_t)1<<(8*sizeof(hssize_t)-1))
/*
* Some compilers have problems declaring auto variables that point
@@ -510,7 +554,7 @@ int HDfprintf (FILE *stream, const char *fmt, ...);
#define HDstrtod(S,R) strtod(S,R)
#define HDstrtok(X,Y) strtok(X,Y)
#define HDstrtol(S,R,N) strtol(S,R,N)
-int64 HDstrtoll (const char *s, const char **rest, int base);
+int64_t HDstrtoll (const char *s, const char **rest, int base);
#define HDstrtoul(S,R,N) strtoul(S,R,N)
#define HDstrxfrm(X,Y,Z) strxfrm(X,Y,Z)
#define HDsysconf(N) sysconf(N)