1 /* $Header: /cvsroot/pgsql/src/include/port/win32.h,v 1.9 2003/04/29 18:25:54 momjian Exp $ */
6 /* defines for dynamic linking on Win32 platform */
9 #if __GNUC__ && ! defined (__declspec)
10 #error You need egcs 1.1 or newer for compiling!
14 #define DLLIMPORT __declspec (dllexport)
15 #else /* not BUILDING_DLL */
16 #define DLLIMPORT __declspec (dllimport)
19 #elif defined(WIN32) && defined(_MSC_VER) /* not CYGWIN */
22 #define DLLIMPORT __declspec (dllexport)
24 #define DLLIMPORT __declspec (dllimport)
27 #else /* not CYGWIN, not MSVC */
39 #define IPC_PRIVATE 234564
40 #define IPC_NOWAIT 2048
53 int shmdt(const void *shmaddr);
54 void* shmat(int memId, void* shmaddr, int flag);
55 int shmctl(int shmid, int flag, struct shmid_ds * dummy);
56 int shmget(int memKey, int size, int flag);
66 unsigned short *array;
76 int semctl(int semId, int semNum, int flag, union semun);
77 int semget(int semKey, int semNum, int flags);
78 int semop(int semId, struct sembuf * sops, int flag);
84 * Supplement to <sys/types.h>.
88 #define pid_t unsigned long
92 #define ushort unsigned short
95 * Supplement to <sys/stat.h>.
99 #define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
100 #define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
102 #define S_IRUSR _S_IREAD
103 #define S_IWUSR _S_IWRITE
104 #define S_IXUSR _S_IEXEC
105 #define S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
108 * Supplement to <errno.h>.
113 #define EINTR WSAEINTR
114 #define EAGAIN WSAEWOULDBLOCK
115 #define EMSGSIZE WSAEMSGSIZE
116 #define EAFNOSUPPORT WSAEAFNOSUPPORT
117 #define EWOULDBLOCK WSAEWOULDBLOCK
118 #define ECONNRESET WSAECONNRESET
119 #define EINPROGRESS WSAEINPROGRESS
122 * Supplement to <math.h>.
125 #define finite _finite
126 extern double rint(double x);
129 * Supplement to <stdio.h>.
131 #define snprintf _snprintf
132 #define vsnprintf _vsnprintf