#include <win32/platform/select_platform_features.h>
+#ifdef _WIN32_WINNT
+ #if _WIN32_WINNT < 0x0400
+ #undef _WIN32_WINNT
+ #define _WIN32_WINNT 0x0400
+ #endif
+#else
+ #define _WIN32_WINNT 0x0400
+#endif
+
/*
* include files.
*/
#undef HAVE_SIGNAL
#endif
+/* "disable the snprintf replacement ( this function is broken on system v only" */
+
+
+
+#ifdef PREFER_PORTABLE_SNPRINTF
+# undef PREFER_PORTABLE_SNPRINTF 1
+#endif
+
+
/* The compiler has `snprintf' function. */
-#if defined(HAVE_SNPRINTF)
- #undef HAVE_SNPRINTF 1
+#if _MSC_VER >= 1400
+# ifndef HAVE_SNPRINTF
+# define HAVE_SNPRINTF 1
+# ifndef PREFER_PORTABLE_SNPRINTF
+# define snprintf _snprintf
+# endif
+# endif
+#else
+# ifdef HAVE_SNPRINTF
+ #undef HAVE_SNPRINTF
+# endif
#endif
+
+
/* No `swapcontext' function. */
#if defined(HAVE_SWAPCONTEXT)
#undef HAVE_SWAPCONTEXT
#endif
/* The compiler has the `vsnprintf' function. */
-/*#if !defined(HAVE_VSNPRINTF)
+#ifndef HAVE_VSNPRINTF
#define HAVE_VSNPRINTF 1
-#endif*/
-
-
-/* enable the asprintf replacement */
-#if !defined(NEED_ASPRINTF)
- #define NEED_ASPRINTF 1
#endif
-/*#ifdef NEED_ASPRINTF
-#undef NEED_ASPRINTF
-#endif*/
-
-/* enable the vasprintf replacement */
-#if !defined(NEED_VASPRINTF)
- #define NEED_VASPRINTF 1
+/* disable the asprintf replacement */
+#ifndef NEED_ASPRINTF
+ #define NEED_ASPRINTF
#endif
-/* "disable the snprintf replacement ( this function is broken on system v only" */
-
-/* FIXME TO ANALYZE */
-#if defined(PREFER_PORTABLE_SNPRINTF)
- #undef PREFER_PORTABLE_SNPRINTF
-#endif
-#if !defined(PREFER_PORTABLE_SNPRINTF)
- #define PREFER_PORTABLE_SNPRINTF
+/* disable the vasprintf replacement */
+#ifndef NEED_VASPRINTF
+ #define NEED_VASPRINTF
#endif
/* The maximal size of any scalar on this arch */
#define va_copy(d, s) __VA_COPY_USE(d, s)
#endif
-#ifdef USE_UCONTEXT
-#undef USE_UCONTEXT
+/* xbt contexts are based on our threads implementation */
+#ifndef CONTEXT_THREADS
+#define CONTEXT_THREADS 1
#endif
+/* xbt contexts are not based on ucontext */
+#ifdef CONTEXT_UCONTEXT
+#undef CONTEXT_UCONTEXT
+#endif
/* Define to id of used va_copy() implementation */
#define __VA_COPY_USE __VA_COPY_USE_C99
* Replace winsock2.h,ws2tcpip.h and winsock.h header files */
#include <windows.h>
-/* types */
-typedef unsigned int uint32_t;
-typedef int socklen_t;
/* Choose setjmp as exception implementation */
#ifndef __EX_MCTX_SJLJ__
#define __EX_MCTX_SJLJ__
#endif
-/* this is used in context managment. */
-#ifndef USE_WIN_THREADS
-#define USE_WIN_THREADS
-#endif
+
+
+#include <sys/stat.h>
+
+#define S_IWUSR _S_IWRITE
+#define S_IRUSR _S_IREAD
+
+
+/* Visual C++ does not declare the ssize_t type */
+typedef int ssize_t;
+
+/* Visual C++ does not declare the mode_t type */
+typedef unsigned int mode_t;
+
+/* Visual C++ does not declare the uint32_t type */
+typedef unsigned int uint32_t;
#endif /* #ifndef __XBT_VISUALC_COMPILER_CONFIG_H__ */