1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 #ifndef OPAL_WIN_COMPAT_H
  21 #define OPAL_WIN_COMPAT_H
  22 
  23 
  24 
  25 
  26 #define _CRT_SECURE_NO_DEPRECATE
  27 
  28 
  29 
  30 
  31 
  32 
  33 #define _WIN32_WINNT 0x0502
  34 
  35 
  36 
  37 
  38 
  39 
  40 #define S_IFLNK        0xFFFF          
  41 #define S_IXUSR        _S_IEXEC        
  42 #define S_IRUSR        _S_IREAD        
  43 #define S_IWUSR        _S_IWRITE       
  44 
  45 
  46 
  47 
  48 #define _CRT_RAND_S
  49 
  50 
  51 
  52 
  53 
  54 #ifndef WIN32_LEAN_AND_MEAN
  55 #define WIN32_LEAN_AND_MEAN
  56 #endif  
  57 #ifndef VC_EXTRALEAN
  58 #define VC_EXTRALEAN
  59 #endif  
  60 #include <windows.h>
  61 
  62 
  63 
  64 
  65 #define FD_SETSIZE 1024
  66 
  67 
  68 #include <shellapi.h>
  69 #include <winsock2.h>
  70 #include <ws2tcpip.h>
  71 #include <process.h>
  72 #include <signal.h>
  73 #include <conio.h>
  74 #include <fcntl.h>
  75 #include <stdint.h>
  76 
  77 
  78 
  79 
  80 #include <direct.h>
  81 #include <io.h>
  82 
  83 #include <stdlib.h>
  84 
  85 #include <malloc.h>
  86 
  87 
  88 #define STDIN_FILENO  0
  89 #define STDOUT_FILENO 1
  90 #define STDERR_FILENO 2
  91 typedef unsigned short mode_t;
  92 typedef long ssize_t;
  93 typedef DWORD in_port_t;
  94 typedef char* caddr_t;
  95 typedef unsigned int uint;
  96 
  97 #ifndef WIN32_LEAN_AND_MEAN
  98 #define WIN32_LEAN_AND_MEAN
  99 #endif
 100 
 101 #ifdef _MSC_VER
 102 #if defined(OMPI_BUILDING) && OMPI_BUILDING
 103 #include "opal/win32/opal_uio.h"
 104 #include "opal/win32/opal_time.h"
 105 #include "opal/win32/opal_utsname.h"
 106 #include "opal/win32/opal_util.h"
 107 #include "opal/win32/opal_misc.h"
 108 #include "opal/win32/opal_inet.h"
 109 #include "opal/win32/opal_socket.h"
 110 #endif
 111 
 112 
 113 #define F_OK  0x00
 114 #define R_OK  0x04
 115 #define W_OK  0x02
 116 #define X_OK  R_OK  
 117 #define S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
 118 
 119 
 120 
 121 
 122 
 123 
 124 
 125 
 126 #define getpid                    _getpid
 127 #define strdup                    _strdup
 128 #define putenv                    _putenv
 129 #define getcwd                    _getcwd
 130 #define rmdir                     _rmdir
 131 #define chdir                     _chdir
 132 #define chmod                     _chmod
 133 #define access                    _access
 134 #define open                      _open
 135 #define close                     _close
 136 #define unlink                    _unlink
 137 #define dup2                      _dup2
 138 #define dup                       _dup
 139 #define write                     _write
 140 #define read                      _read
 141 #define fileno                    _fileno
 142 #define isatty                    _isatty
 143 #define execvp                    _execvp
 144 #define S_ISDIR(STAT_MODE)        ((STAT_MODE) & _S_IFDIR)
 145 #define S_ISREG(STAT_MODE)        ((STAT_MODE) & _S_IFREG)
 146 #define strncasecmp               _strnicmp
 147 #define strcasecmp                _stricmp
 148 #define umask                     _umask
 149 #define getch                     _getch
 150 #define random                    rand
 151 #define strtok_r                  strtok_s
 152 #define srand48                   srand
 153 #define lrand48                   rand
 154 #define usleep(t)                 Sleep(t/1000)
 155 #define posix_memalign(p, a, s)   *p=_aligned_malloc(s,a)
 156 
 157 #else
 158 
 159 #undef WSABASEERR
 160 
 161 #undef PACKED
 162 #define pthread_atfork
 163 #include <winsock.h>
 164 #if defined(OMPI_BUILDING) && OMPI_BUILDING
 165 #include "opal/win32/opal_uio.h"
 166 #include "opal/win32/opal_utsname.h"
 167 #include "opal/win32/opal_util.h"
 168 #include "opal/win32/opal_inet.h"
 169 #include "opal/win32/opal_misc.h"
 170 #include "opal/win32/opal_socket.h"
 171 #endif
 172 
 173 #define strtok_r(s,d,p)           *p = strtok(s,d)
 174 
 175 #endif
 176 
 177 #define MAXPATHLEN _MAX_PATH
 178 #define MAXHOSTNAMELEN _MAX_PATH
 179 #define OPAL_MAXHOSTNAMELEN (MAXHOSTNAMELEN + 1)
 180 #define PATH_MAX _MAX_PATH
 181 #define WTERMSIG(EXIT_CODE)    (1)
 182 #define WIFEXITED(EXIT_CODE)   (1)
 183 #define WEXITSTATUS(EXIT_CODE) (EXIT_CODE)
 184 #define WIFSIGNALED(EXIT_CODE) (0)
 185 #define WIFSTOPPED(EXIT_CODE)  (0)
 186 #define WSTOPSIG(EXIT_CODE)    (11)
 187 
 188 #define mkdir(PATH, MODE)         _mkdir((PATH))
 189 #define nanosleep(tp, rem)        Sleep(*tp.tv_sec*1000+*tp.tv_nsec/1000000)
 190 #define pipe(array_fd)            _pipe(array_fd, 1024, O_BINARY )
 191 #define inet_ntop                 opal_inet_ntop
 192 #define inet_pton                 opal_inet_pton
 193 #define lstat                     stat
 194 
 195 #ifndef UINT64_MAX
 196 #define UINT64_MAX            0xffffffffffffffffULL  
 197 #endif
 198 #ifndef UINT64_MIN
 199 #define UINT64_MIN            0
 200 #endif
 201 #ifndef INT64_MAX
 202 #define INT64_MAX             0x7fffffffffffffffLL  
 203 #endif
 204 #ifndef INT64_MIN
 205 #define INT64_MIN             (-0x7fffffffffffffffLL - 1)  
 206 #endif
 207 #ifndef UINT32_MAX
 208 #define UINT32_MAX            0xffffffff  
 209 #endif
 210 #ifndef UINT32_MIN
 211 #define UINT32_MIN            0
 212 #endif
 213 #ifndef INT32_MAX
 214 #define INT32_MAX             0x7fffffff  
 215 #endif
 216 #ifndef INT32_MIN
 217 #define INT32_MIN             (-0x7fffffff - 1)  
 218 #endif
 219 #ifndef UINT16_MAX
 220 #define UINT16_MAX            0xffff  
 221 #endif
 222 #ifndef UINT16_MIN
 223 #define UINT16_MIN            0
 224 #endif
 225 #ifndef INT16_MAX
 226 #define INT16_MAX             0x7fff  
 227 #endif
 228 #ifndef INT16_MIN
 229 #define INT16_MIN             (-0x7fff - 1)  
 230 #endif
 231 #ifndef UINT8_MAX
 232 #define UINT8_MAX             0xff  
 233 #endif
 234 #ifndef UINT8_MIN
 235 #define UINT8_MIN             0
 236 #endif
 237 #ifndef INT8_MAX
 238 #define INT8_MAX             0x7f  
 239 #endif
 240 #ifndef INT8_MIN
 241 #define INT8_MIN             (-0x7f - 1)  
 242 #endif
 243 
 244 
 245 #if !defined(HAVE_DECL___FUNC__)
 246 #define HAVE_DECL___FUNC__ 1
 247 #endif
 248 
 249 
 250 
 251 
 252 
 253 
 254 
 255 
 256 #define SIGHUP    1
 257 
 258 #define SIGQUIT   3
 259 
 260 #define SIGTRAP   5
 261 #define SIGIOT    6
 262 #define SIGBUS    7
 263 
 264 #define SIGKILL   9
 265 #define SIGUSR1   10
 266 
 267 #define SIGUSR2   12
 268 #define SIGPIPE   13
 269 #define SIGALRM   14
 270 
 271 #define SIGSTKFLT 16
 272 #define SIGCHLD   17
 273 #define SIGCONT   18
 274 #define SIGSTOP   19
 275 #define SIGTSTP   20
 276 
 277 
 278 #define SIGTTIN   23
 279 #define SIGTTOU   24
 280 #define SIGURG    25
 281 #define SIGXCPU   26
 282 #define SIGXFSZ   27
 283 #define SIGVTALRM 28
 284 #define SIGPROF   29
 285 #define SIGWINCH  30
 286 #define SIGIO     31
 287 
 288 
 289 
 290 
 291 
 292 
 293 #define WUNTRACED 0
 294 #define WNOHANG   0
 295 
 296 #define sigset_t int
 297 #define in_addr_t uint32_t
 298 
 299 
 300 
 301 
 302 #if defined(_MSC_VER) && _MSC_VER < 1600
 303 #define _Bool BOOL
 304 #else
 305 #define _Bool bool
 306 #endif
 307 
 308 
 309 
 310 
 311 
 312 #define LOG_EMERG   0
 313 #define LOG_ALERT   1
 314 #define LOG_CRIT    2
 315 #define LOG_ERR     3
 316 #define LOG_WARNING 4
 317 #define LOG_NOTICE  5
 318 #define LOG_INFO    6
 319 #define LOG_DEBUG   7
 320 
 321 
 322 
 323 
 324 
 325 #define bzero(p, l) memset(p, 0, l)
 326 #define bcopy(s, t, l) memmove(t, s, l)
 327 #define isblank(c) (c == ' ' || c == '\t')?1:0
 328 
 329 
 330 
 331 
 332 #define ompi_debugger_notify_abort(x)
 333 #define ompi_wait_for_debugger(x)
 334 
 335 
 336 #endif