OpenBSD has sem_timedwait().
[mono.git] / mono / io-layer / io-layer.h
old mode 100644 (file)
new mode 100755 (executable)
index 72d24f4..394799b
 #ifndef _MONO_IOLAYER_IOLAYER_H_
 #define _MONO_IOLAYER_IOLAYER_H_
 
-#if defined(__WIN32__)
+#if defined(__WIN32__) || defined(_WIN32)
 /* Native win32 */
-#define UNICODE
-#define _UNICODE
 #define __USE_W32_SOCKETS
+#if (_WIN32_WINNT < 0x0502)
+/* GetProcessId is available on Windows XP SP1 and later.
+ * Windows SDK declares it unconditionally.
+ * MinGW declares for Windows XP and later.
+ * Declare as __GetProcessId for unsupported targets. */
+#define GetProcessId __GetProcessId
+#endif
 #include <winsock2.h>
 #include <windows.h>
 #include <winbase.h>
+/*
+ * The mingw version says:
+ * /usr/i686-pc-mingw32/sys-root/mingw/include/ws2tcpip.h:38:2: error: #error "ws2tcpip.h is not compatible with winsock.h. Include winsock2.h instead."
+ */
+#ifdef _MSC_VER
 #include <ws2tcpip.h>
+#endif
 #include <psapi.h>
 #include <shlobj.h>
+#include <mswsock.h>
+#if (_WIN32_WINNT < 0x0502)
+#undef GetProcessId
+#endif
 #else  /* EVERYONE ELSE */
 #include "mono/io-layer/wapi.h"
 #include "mono/io-layer/uglify.h"
-#endif /* PLATFORM_WIN32 */
+#endif /* HOST_WIN32 */
+
+#ifdef __native_client__
+#include "mono/metadata/nacl-stub.h"
+#endif
 
 #endif /* _MONO_IOLAYER_IOLAYER_H_ */