]> git.pond.sub.org Git - empserver/blobdiff - src/client/sysdep_w32.h
MinGW provides getopt(), no need to replace it
[empserver] / src / client / sysdep_w32.h
index c166480414b01c0437db55ba1d20a9c7ef2533e0..acb155f03c3737a61a0428d27a65d42abaf7b5eb 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *
  *  This program is free software; you can redistribute it and/or modify
  *  ---
  *
  *  sysdep_w32.h: system dependent support for WIN32 environments
- * 
+ *
  *  Known contributors to this file:
  *     Ron Koenderink, 2007
+ *     Markus Armbruster, 2009
  */
 
 #ifndef _SYSDEF_W32_H
+#include <getopt.h>
 #include <winsock2.h>
 #include <ws2tcpip.h>
 #include <windows.h>
-#include <signal.h>
-
-extern int getopt(int, char * const[], const char *);
-extern char *optarg;
-extern int optind, opterr, optopt;
 
 #ifdef _MSC_VER
 typedef int __w64 ssize_t;
@@ -54,41 +51,34 @@ struct iovec {
     size_t iov_len;
 };
 
-struct sigaction {
-    int sa_flags;
-    void (*sa_handler)(int sig);
-};
+#define W32_FD_TO_SOCKET(fd) ((SOCKET)_get_osfhandle((fd)))
+#define W32_SOCKET_TO_FD(fh) (_open_osfhandle((long)(fh), O_RDWR | O_BINARY))
 
-extern int w32_recv(int socket, char *buffer,
-                          size_t buf_size, int flags);
-extern int w32_send(int socket, char *buffer,
-                           size_t buf_size, int flags);
-extern int w32_close_socket(int fd);
-extern int w32_socket(int family, int sock_type, int protocol);
-extern int w32_connect(int sock, struct sockaddr *addr, int addrlen);
-extern int w32_close_handle(int fd);
-extern ssize_t w32_readv_handle(int fd, const struct iovec *iov,
-                               int iovcnt);
-extern ssize_t w32_writev_socket(int fd, const struct iovec *iov,
+extern void w32_set_winsock_errno(void);
+
+extern int w32_recv(int sockfd, void *, size_t, int flags);
+extern int w32_send(int sockfd, const void *, size_t, int flags);
+extern int w32_close(int fd);
+extern int w32_socket(int domain, int type, int protocol);
+extern int w32_connect(int sockfd, const struct sockaddr *, int addrlen);
+extern ssize_t w32_readv_fd(int fd, const struct iovec *iov,
+                           int iovcnt);
+extern ssize_t w32_writev_socket(int sockfd, const struct iovec *iov,
                                 int iovcnt);
-extern int w32_openfd(const char *fname, int oflag, ...);
-extern int w32_openhandle(const char *fname, int oflag);
 
 extern struct passwd *w32_getpw(void);
-extern char *getpass(char *prompt);
-extern void sysdep_init(void);
+extern void w32_sysdep_init(void);
+
+#define recv(sockfd, buffer, buf_size, flags) \
+    w32_recv((sockfd), (buffer), (buf_size), (flags))
+#define close(fd) \
+    w32_close((fd))
+#define socket(domain, type, protocol) \
+    w32_socket((domain), (type), (protocol))
+#define connect(sockfd, addr, addrlen) \
+    w32_connect((sockfd), (addr), (addrlen))
 
-#define recv(sock, buffer, buf_size, flags) \
-    w32_recv((sock), (buffer), (buf_size), (flags))
-#define socket(family, sock_type, protocol) \
-    w32_socket((family), (sock_type), (protocol))
-#define connect(sock, addr, addrlen) \
-    w32_connect((sock), (addr), (addrlen))
-                                   
 #define pclose _pclose
 #define popen _popen
 #define snprintf _snprintf
-#define getsose() ((void)0)
-#define putso() ((void)0)
-#define putse() ((void)0)
-#endif /* sysdef_w32.h */
+#endif