1 // os_win32.h copyright "Ruurd A. Reitsma" <R.A.Reitsma@wbmt.tudelft.nl>
6 //Avoid zillions of windows includes
7 #ifndef WIN32_LEAN_AND_MEAN
8 #define WIN32_LEAN_AND_MEAN
13 // Avoid some very annoying macros from MFC
17 #if defined( __SGI_STL_PORT )
20 // These overloads prevent ambiguity errors when signed and unsigned integers are compared.
21 inline long min(long x, long y) {return std::min(x, y);}
22 inline long max(long x, long y) {return std::max(x, y);}
25 #else // defined( __SGI_STL_PORT )
27 // These overloads prevent ambiguity errors when int, long and unsigned int and int are compared.
29 inline int min(int x, int y) { return x < y ? x : y; }
30 inline int max(int x, int y) { return x > y ? x : y; }
32 inline unsigned int min(unsigned int x, unsigned int y) { return x < y ? x : y; }
33 inline unsigned int max(unsigned int x, unsigned int y) { return x > y ? x : y; }
35 inline long min(long x, long y) { return x < y ? x : y; }
36 inline long max(long x, long y) { return x > y ? x : y; }
38 inline long min(int x, long y) { return x < y ? x : y; }
39 inline long max(int x, long y) { return x > y ? x : y; }
41 inline long min(long x, int y) { return x < y ? x : y; }
42 inline long max(long x, int y) { return x > y ? x : y; }
44 inline unsigned long min(unsigned long x, unsigned long y) { return x < y ? x : y; }
45 inline unsigned long max(unsigned long x, unsigned long y) { return x > y ? x : y; }
47 inline double min(double x, double y) { return x < y ? x : y; }
48 inline double max(double x, double y) { return x > y ? x : y; }
51 #endif // defined( __SGI_STL_PORT )
59 #define FD_CLOEXEC 1 /* posix */
60 #define F_DUPFD 0 /* Duplicate fildes */
61 #define F_GETFD 1 /* Get fildes flags (close on exec) */
62 #define F_SETFD 2 /* Set fildes flags (close on exec) */
63 #define F_GETFL 3 /* Get file flags */
64 #define F_SETFL 4 /* Set file flags */
65 #define O_NONBLOCK 0x4000
66 inline int fcntl (int, int, ...) {return -1;}
79 inline int fork () {return -1;}
80 #define pipe(a) _pipe(a,0,0)
84 #define waitpid(a,b,c) cwait(b,a,c)
87 #define WIFEXITED(a) 0
88 #define WEXITSTATUS(a) 0
89 #define WIFSIGNALED(a) 0
91 #define WIFSTOPPED(a) 0
98 //#define select(a,b,c,d,e) -1
101 #define FD_ISSET(fd, set) 0
103 #ifndef __MINGW32__ //already defined in mingw headers
105 #define _S_IFBLK 0x3000
106 #define S_IFIFO _S_IFIFO
107 #define S_IFBLK _S_IFBLK
108 #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
109 #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
110 #define popen(a,b) _popen(a,b)
111 #define pclose(a) _pclose(a)
119 #endif //_OS_WIN32_H_