1- /* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.41 2004/12/01 23:42:26 momjian Exp $ */
1+ /* $PostgreSQL: pgsql/src/include/port/win32.h,v 1.42 2004/12/26 19:20:33 tgl Exp $ */
22
33/* undefine and redefine after #include */
44#undef mkdir
77#include <windows.h>
88#include <winsock.h>
99#include <process.h>
10+ #include <signal.h>
11+ #include <errno.h>
12+
1013#undef near
1114
1215/* Must be here to avoid conflicting with prototype in windows.h */
@@ -103,16 +106,15 @@ intsemget(int semKey, int semNum, int flags);
103106int semop (int semId ,struct sembuf * sops ,int flag );
104107
105108
106- /* In backend/port/win32/signal.c */
107- extern DLLIMPORT HANDLE pgwin32_signal_event ;
108- extern HANDLE pgwin32_initial_signal_pipe ;
109-
110- void pgwin32_signal_initialize (void );
111- HANDLE pgwin32_create_signal_listener (pid_t pid );
112- void pgwin32_dispatch_queued_signals (void );
113- void pg_queue_signal (int signum );
109+ /*
110+ * Signal stuff
111+ */
112+ #define WEXITSTATUS (w )(((w) >> 8) & 0xff)
113+ #define WIFEXITED (w )(((w) & 0xff) == 0)
114+ #define WIFSIGNALED (w )(((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f))
115+ #define WTERMSIG (w )((w) & 0x7f)
114116
115- #define sigmask (sig ) ( 1 << (sig-1) )
117+ #define sigmask (sig ) ( 1 << (( sig) -1) )
116118
117119/* Signal function return values */
118120#undef SIG_DFL
@@ -122,44 +124,6 @@ voidpg_queue_signal(int signum);
122124#define SIG_ERR ((pqsigfunc)-1)
123125#define SIG_IGN ((pqsigfunc)1)
124126
125- #ifndef FRONTEND
126- #define pg_usleep (t ) pgwin32_backend_usleep(t)
127- void pgwin32_backend_usleep (long microsec );
128- #endif
129-
130- /* In backend/port/win32/socket.c */
131- #ifndef FRONTEND
132- #define socket (af ,type ,protocol ) pgwin32_socket(af, type, protocol)
133- #define accept (s ,addr ,addrlen ) pgwin32_accept(s, addr, addrlen)
134- #define connect (s ,name ,namelen ) pgwin32_connect(s, name, namelen)
135- #define select (n ,r ,w ,e ,timeout ) pgwin32_select(n, r, w, e, timeout)
136- #define recv (s ,buf ,len ,flags ) pgwin32_recv(s, buf, len, flags)
137- #define send (s ,buf ,len ,flags ) pgwin32_send(s, buf, len, flags)
138-
139- SOCKET pgwin32_socket (int af ,int type ,int protocol );
140- SOCKET pgwin32_accept (SOCKET s ,struct sockaddr * addr ,int * addrlen );
141- int pgwin32_connect (SOCKET s ,const struct sockaddr * name ,int namelen );
142- int pgwin32_select (int nfds ,fd_set * readfs ,fd_set * writefds ,fd_set * exceptfds ,const struct timeval * timeout );
143- int pgwin32_recv (SOCKET s ,char * buf ,int len ,int flags );
144- int pgwin32_send (SOCKET s ,char * buf ,int len ,int flags );
145-
146- const char * pgwin32_socket_strerror (int err );
147- int pgwin32_waitforsinglesocket (SOCKET s ,int what );
148-
149- /* in backend/port/win32/security.c */
150- extern int pgwin32_is_admin (void );
151- extern int pgwin32_is_service (void );
152- #endif
153-
154- /* in backend/port/win32/error.c */
155- void _dosmaperr (unsigned long );
156-
157-
158- #define WEXITSTATUS (w )(((w) >> 8) & 0xff)
159- #define WIFEXITED (w )(((w) & 0xff) == 0)
160- #define WIFSIGNALED (w )(((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f))
161- #define WTERMSIG (w )((w) & 0x7f)
162-
163127/* Some extra signals */
164128#define SIGHUP 1
165129#define SIGQUIT 3
@@ -222,7 +186,6 @@ typedef int pid_t;
222186/*
223187 * Supplement to <errno.h>.
224188 */
225- #include <errno.h>
226189#undef EAGAIN
227190#undef EINTR
228191#define EINTR WSAEINTR
@@ -237,3 +200,45 @@ typedef int pid_t;
237200#define ECONNREFUSED WSAECONNREFUSED
238201#define EBADFD WSAENOTSOCK
239202#define EOPNOTSUPP WSAEOPNOTSUPP
203+
204+
205+ /* In backend/port/win32/signal.c */
206+ extern DLLIMPORT HANDLE pgwin32_signal_event ;
207+ extern HANDLE pgwin32_initial_signal_pipe ;
208+
209+ void pgwin32_signal_initialize (void );
210+ HANDLE pgwin32_create_signal_listener (pid_t pid );
211+ void pgwin32_dispatch_queued_signals (void );
212+ void pg_queue_signal (int signum );
213+
214+ #ifndef FRONTEND
215+ #define pg_usleep (t ) pgwin32_backend_usleep(t)
216+ void pgwin32_backend_usleep (long microsec );
217+ #endif
218+
219+ /* In backend/port/win32/socket.c */
220+ #ifndef FRONTEND
221+ #define socket (af ,type ,protocol ) pgwin32_socket(af, type, protocol)
222+ #define accept (s ,addr ,addrlen ) pgwin32_accept(s, addr, addrlen)
223+ #define connect (s ,name ,namelen ) pgwin32_connect(s, name, namelen)
224+ #define select (n ,r ,w ,e ,timeout ) pgwin32_select(n, r, w, e, timeout)
225+ #define recv (s ,buf ,len ,flags ) pgwin32_recv(s, buf, len, flags)
226+ #define send (s ,buf ,len ,flags ) pgwin32_send(s, buf, len, flags)
227+
228+ SOCKET pgwin32_socket (int af ,int type ,int protocol );
229+ SOCKET pgwin32_accept (SOCKET s ,struct sockaddr * addr ,int * addrlen );
230+ int pgwin32_connect (SOCKET s ,const struct sockaddr * name ,int namelen );
231+ int pgwin32_select (int nfds ,fd_set * readfs ,fd_set * writefds ,fd_set * exceptfds ,const struct timeval * timeout );
232+ int pgwin32_recv (SOCKET s ,char * buf ,int len ,int flags );
233+ int pgwin32_send (SOCKET s ,char * buf ,int len ,int flags );
234+
235+ const char * pgwin32_socket_strerror (int err );
236+ int pgwin32_waitforsinglesocket (SOCKET s ,int what );
237+
238+ /* in backend/port/win32/security.c */
239+ extern int pgwin32_is_admin (void );
240+ extern int pgwin32_is_service (void );
241+ #endif
242+
243+ /* in backend/port/win32/error.c */
244+ extern void _dosmaperr (unsigned long );