summaryrefslogtreecommitdiff
path: root/ace/config-win32-mingw.h
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2002-07-31 06:39:10 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2002-07-31 06:39:10 +0000
commitadfee5c8f86dbbe528b5e0eeb0ec73110da6983a (patch)
tree2d9c5f87d0b1588f18d9533fbecfa12f6c088e4e /ace/config-win32-mingw.h
parent61cffb65c667aa7dcb243d865604ad366a4b0b85 (diff)
downloadATCD-adfee5c8f86dbbe528b5e0eeb0ec73110da6983a.tar.gz
ChangeLogTag: Wed Jul 31 08:39:12 2002 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'ace/config-win32-mingw.h')
-rw-r--r--ace/config-win32-mingw.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/ace/config-win32-mingw.h b/ace/config-win32-mingw.h
index e655efc3735..df5f7c83796 100644
--- a/ace/config-win32-mingw.h
+++ b/ace/config-win32-mingw.h
@@ -60,5 +60,64 @@
#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) (STATUS))
+// The MingW32 w32api version 1.4 and 1.5 don't define this union but we need
+// it in the Win32_Asynch_IO.cpp
+#if defined (ACE_MINGW_LACKS_FILE_SEGMENT_ELEMENT)
+
+// Define stuff for PVOID64
+#if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_IA64)) && (_MSC_VER >= 1100) && !(defined(MIDL_PASS) || defined(RC_INVOKED))
+#define POINTER_64 __ptr64
+typedef unsigned __int64 POINTER_64_INT;
+#if defined(_AXP64_)
+#define POINTER_32 __ptr32
+#else
+#define POINTER_32
+#endif
+#else
+#if defined(_MAC) && defined(_MAC_INT_64)
+#define POINTER_64 __ptr64
+typedef unsigned __int64 POINTER_64_INT;
+#else
+#define POINTER_64
+typedef unsigned long POINTER_64_INT;
+#endif
+#define POINTER_32
+#endif
+
+typedef void * POINTER_64 PVOID64;
+
+//
+// Define segement buffer structure for scatter/gather read/write.
+//
+typedef union _FILE_SEGMENT_ELEMENT {
+ PVOID64 Buffer;
+ ULONGLONG Alignment;
+}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
+#endif
+
+// The MingW32 w32api version 1.4 and 1.5 don't define these methods but we need
+// it in the Win32_Asynch_IO.cpp
+#if defined (ACE_MINGW_LACKS_READWRITE_FILESCATTER)
+BOOL
+WINAPI
+ReadFileScatter(
+ IN HANDLE hFile,
+ IN FILE_SEGMENT_ELEMENT aSegmentArray[],
+ IN DWORD nNumberOfBytesToRead,
+ IN LPDWORD lpReserved,
+ IN LPOVERLAPPED lpOverlapped
+ );
+
+BOOL
+WINAPI
+WriteFileGather(
+ IN HANDLE hFile,
+ OUT FILE_SEGMENT_ELEMENT aSegmentArray[],
+ IN DWORD nNumberOfBytesToWrite,
+ IN LPDWORD lpReserved,
+ IN LPOVERLAPPED lpOverlapped
+ );
+#endif
+
#include "ace/post.h"
#endif /* ACE_CONFIG_WIN32_MINGW_H */