From adfee5c8f86dbbe528b5e0eeb0ec73110da6983a Mon Sep 17 00:00:00 2001 From: Johnny Willemsen Date: Wed, 31 Jul 2002 06:39:10 +0000 Subject: ChangeLogTag: Wed Jul 31 08:39:12 2002 Johnny Willemsen --- ace/config-win32-mingw.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'ace/config-win32-mingw.h') 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 */ -- cgit v1.2.1