1 /* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.14 2004/01/26 22:51:56 momjian Exp $ */
3 /* undefine and redefine after #include */
10 /* Must be here to avoid conflicting with prototype in windows.h */
11 #define mkdir(a,b) mkdir(a)
17 /* defines for dynamic linking on Win32 platform */
18 #if defined(__CYGWIN__) || defined(__MINGW32__)
20 #if __GNUC__ && ! defined (__declspec)
21 #error You need egcs 1.1 or newer for compiling!
25 #define DLLIMPORT __declspec (dllexport)
26 #else /* not BUILDING_DLL */
27 #define DLLIMPORT __declspec (dllimport)
30 #elif defined(WIN32) && defined(_MSC_VER) /* not CYGWIN or MingW */
33 #define DLLIMPORT __declspec (dllexport)
35 #define DLLIMPORT __declspec (dllimport)
38 #else /* not CYGWIN, not MSVC, not MingW */
46 #undef HAVE_UNION_SEMUN
47 #define HAVE_UNION_SEMUN 1
52 #define IPC_PRIVATE 234564
53 #define IPC_NOWAIT 2048
74 int shmdt(const void *shmaddr);
75 void *shmat(int memId, void *shmaddr, int flag);
76 int shmctl(int shmid, int flag, struct shmid_ds * dummy);
77 int shmget(int memKey, int size, int flag);
87 unsigned short *array;
97 int semctl(int semId, int semNum, int flag, union semun);
98 int semget(int semKey, int semNum, int flags);
99 int semop(int semId, struct sembuf * sops, int flag);
101 #define sleep(sec) (Sleep(sec * 1000), /* no return value */ 0)
103 /* Some extra signals */
107 #define SIGABRT 22 /* Set to match W32 value -- not UNIX
116 #define SIGTTOU 22 /* Same as SIGABRT -- no problem, I hope */
123 int tz_minuteswest; /* Minutes west of GMT. */
124 int tz_dsttime; /* Nonzero if DST is ever in effect. */
130 * Supplement to <sys/types.h>.
134 #define pid_t unsigned long
138 #define ushort unsigned short
141 * Supplement to <sys/stat.h>.
145 #define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
146 #define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
148 #define S_IRUSR _S_IREAD
149 #define S_IWUSR _S_IWRITE
150 #define S_IXUSR _S_IEXEC
151 #define S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
154 * Supplement to <errno.h>.
159 #define EINTR WSAEINTR
160 #define EAGAIN WSAEWOULDBLOCK
161 #define EMSGSIZE WSAEMSGSIZE
162 #define EAFNOSUPPORT WSAEAFNOSUPPORT
163 #define EWOULDBLOCK WSAEWOULDBLOCK
164 #define ECONNRESET WSAECONNRESET
165 #define EINPROGRESS WSAEINPROGRESS