Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
splint'able
[simgrid.git] / src / portable.h
index 15fc63d..0c56508 100644 (file)
 
 #include "gras_config.h"
 
-#include <errno.h>
-#include <sys/time.h> /* struct timeval */
-#include <sys/types.h>
+#ifdef HAVE_ERRNO_H
+#  include <errno.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+#endif
 
 /****
  **** Networking 
@@ -87,14 +91,18 @@ const char *gras_wsa_err2string(int errcode);
 #include <fcntl.h>
 
 #ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
+#  include <sys/stat.h>
+#endif
+
+#ifndef O_BINARY
+#  define O_BINARY 0
 #endif
 
 /****
  **** Time handling
  ****/
 
-#if TIME_WITH_SYS_TIME
+#ifdef TIME_WITH_SYS_TIME
 # include <sys/time.h>
 # include <time.h>
 #else
@@ -109,5 +117,17 @@ const char *gras_wsa_err2string(int errcode);
 #define sleep _sleep /* else defined in stdlib.h */
 #endif
 
+/****
+ **** Contexts
+ ****/
+
+#ifdef HAVE_UCONTEXT_H
+# ifndef S_SPLINT_S /* This header drives splint into the wall */
+#   include <ucontext.h>
+# endif 
+#else
+#  include "xbt/context_win32.h" /* Manual reimplementation for prehistoric platforms */
+#endif
+
 
 #endif /* GRAS_PORTABLE_H */