summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/H5FDstdio.c15
-rw-r--r--src/H5Ppublic.h8
-rw-r--r--src/H5private.h49
3 files changed, 61 insertions, 11 deletions
diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c
index c852208..0aa6fe7 100644
--- a/src/H5FDstdio.c
+++ b/src/H5FDstdio.c
@@ -16,16 +16,23 @@
#include "hdf5.h"
+#ifdef H5_HAVE_STDIO_H
+#include <stdio.h>
+#endif
#ifdef H5_HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef WIN32
-#include <windows.h>
+#if !defined(_68K_) && !defined(_MPPC_) && !defined(_PPC_) && !defined(_ALPHA_) && !defined(_MIPS_) && !defined(_X86_) && defined(_M_IX86)
+#define _X86_
+#endif
+#include <windef.h>
+#include <winbase.h>
+
#include <io.h>
-#endif /*kent yang 6/21/2001, must be added for defination of open,write....
- also the defination of longlong is valid, will investigate this to
- make sure int64 can replace longlong. Otherwise, keep windows.h*/
+
+#endif
#ifdef MAX
#undef MAX
diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h
index 74efab1..6c49956 100644
--- a/src/H5Ppublic.h
+++ b/src/H5Ppublic.h
@@ -28,6 +28,14 @@
#include "H5MMpublic.h"
#include "H5Zpublic.h"
+/* Metroworks <sys/types.h> doesn't define off_t. */
+#ifdef __MWERKS__
+typedef long off_t;
+/* Metroworks does not define EINTR in <errno.h> */
+# define EINTR 4
+#endif
+/*__MWERKS__*/
+
/* Property list classes */
typedef enum H5P_class_t {
H5P_NO_CLASS = -1, /*error return value */
diff --git a/src/H5private.h b/src/H5private.h
index b001d86..415c919 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -168,15 +168,38 @@ MS doesn't recognize it yet (as of April 2001)
# define H5_inline
#endif
-/* Metroworks <sys/types.h> doesn't define off_t. */
-#ifdef __MWERKS__
-typedef long off_t;
-/* Metroworks does not define EINTR in <errno.h> */
-# define EINTR 4
-#endif /*__MWERKS__*/
-
#endif /*WIN32*/
+/*
+ * This driver supports systems that have the lseek64() function by defining
+ * some macros here so we don't have to have conditional compilations later
+ * throughout the code.
+ *
+ * file_offset_t: The datatype for file offsets, the second argument of
+ * the lseek() or lseek64() call.
+ *
+ * file_seek: The function which adjusts the current file position,
+ * either lseek() or lseek64().
+ *
+ * adding for windows NT file system support.
+ */
+
+#ifdef H5_HAVE_LSEEK64
+# define file_offset_t off64_t
+# define file_seek lseek64
+#elif defined (WIN32)
+# ifdef __MWERKS__
+# define file_offset_t off_t
+# define file_seek lseek
+# else /*MSVC*/
+# define file_offset_t __int64
+# define file_seek _lseeki64
+# endif
+#else
+# define file_offset_t off_t
+# define file_seek lseek
+#endif
+
#ifndef F_OK
# define F_OK 00
# define W_OK 02
@@ -760,7 +783,19 @@ __DLL__ int64_t HDstrtoll (const char *s, const char **rest, int base);
#define HDwaitpid(P,W,O) waitpid(P,W,O)
#define HDwcstombs(S,P,Z) wcstombs(S,P,Z)
#define HDwctomb(S,C) wctomb(S,C)
+
+
+
+
+#if defined (__MWERKS__)
+/* workaround for a bug in the Metrowerks header file for write
+ which is not defined as const void*
+ pvn
+ */
+#define HDwrite(F,M,Z) write(F,(void*)M,Z)
+#else
#define HDwrite(F,M,Z) write(F,M,Z)
+#endif
/*
* And now for a couple non-Posix functions... Watch out for systems that