summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2001-04-01 03:18:01 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2001-04-01 03:18:01 (GMT)
commit1e38134185b2c049c62329740cf5a037c953f1a9 (patch)
tree2b0c0237e3e77378fa3e54ee3e607fb264a1b33c /src
parent6801f8f4c6d8215f017fc12f6ce3e596755eccbe (diff)
downloadhdf5-1e38134185b2c049c62329740cf5a037c953f1a9.zip
hdf5-1e38134185b2c049c62329740cf5a037c953f1a9.tar.gz
hdf5-1e38134185b2c049c62329740cf5a037c953f1a9.tar.bz2
[svn-r3742] Purpose:
Code cleanup Description: ssize_t is not defined on certain (non-UNIX) platforms. Solution: Added steps to configure to generate SIZEOF_SSIZE_T macro and then used the new macro to define ssize_t for platforms which don't have it. Platforms tested: FreeBSD 4.3 (hawkwind)
Diffstat (limited to 'src')
-rw-r--r--src/H5config.h.in3
-rw-r--r--src/H5public.h15
2 files changed, 18 insertions, 0 deletions
diff --git a/src/H5config.h.in b/src/H5config.h.in
index 23ee0f9..ac0e50c 100644
--- a/src/H5config.h.in
+++ b/src/H5config.h.in
@@ -164,6 +164,9 @@
/* The number of bytes in a size_t. */
#undef SIZEOF_SIZE_T
+/* The number of bytes in a ssize_t. */
+#undef SIZEOF_SSIZE_T
+
/* The number of bytes in a uint16_t. */
#undef SIZEOF_UINT16_T
diff --git a/src/H5public.h b/src/H5public.h
index 8cbb25f..e455ed1f 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -99,6 +99,21 @@ typedef int herr_t;
typedef unsigned int hbool_t;
typedef int htri_t;
+/* Define the ssize_t type if it not is defined */
+#if H5_SIZEOF_SSIZE_T==0
+#if H5_SIZEOF_SIZE_T==H5_SIZEOF_INT
+typedef int ssize_t;
+#elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG
+typedef long ssize_t;
+#elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG_LONG
+typedef long long ssize_t;
+#elif H5_SIZEOF_SIZE_T==H5_SIZEOF___INT64
+typedef __int64 ssize_t;
+#else /* Can't find matching type for ssize_t */
+# error "nothing appropriate for ssize_t"
+#endif
+#endif
+
/*
* The sizes of file objects have their own types defined here. If large
* sizes are enabled then use a 64-bit data type, otherwise use the size of