2006-07-04 Marcus Brinkmann <marcus@g10code.de>
[libgcrypt.git] / src / ath.h
index 05d3784..38a046f 100644 (file)
--- a/src/ath.h
+++ b/src/ath.h
@@ -22,9 +22,6 @@
 #define ATH_H
 
 #ifdef _WIN32
-#warning We need to replace these hacks by cleaner code.
-typedef int ssize_t;
-typedef int pid_t;
 #include <windows.h>
 #else
 #include <sys/types.h>
@@ -78,6 +75,15 @@ struct ath_ops
   int (*mutex_unlock) (void *priv);
   ssize_t (*read) (int fd, void *buf, size_t nbytes);
   ssize_t (*write) (int fd, const void *buf, size_t nbytes);
+#ifdef _WIN32
+  ssize_t (*select) (int nfd, void *rset, void *wset, void *eset,
+                    struct timeval *timeout);
+  ssize_t (*waitpid) (pid_t pid, int *status, int options);
+  int (*accept) (int s, void  *addr, int *length_ptr);
+  int (*connect) (int s, void *addr, socklen_t length);
+  int (*sendmsg) (int s, const void *msg, int flags);
+  int (*recvmsg) (int s, void *msg, int flags);
+#else
   ssize_t (*select) (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
                     struct timeval *timeout);
   ssize_t (*waitpid) (pid_t pid, int *status, int options);
@@ -85,6 +91,7 @@ struct ath_ops
   int (*connect) (int s, struct sockaddr *addr, socklen_t length);
   int (*sendmsg) (int s, const struct msghdr *msg, int flags);
   int (*recvmsg) (int s, struct msghdr *msg, int flags);
+#endif
 };
 
 gpg_err_code_t ath_install (struct ath_ops *ath_ops, int check_only);
@@ -100,11 +107,19 @@ int ath_mutex_destroy (ath_mutex_t *mutex);
 int ath_mutex_lock (ath_mutex_t *mutex);
 int ath_mutex_unlock (ath_mutex_t *mutex);
 
-
 /* Replacement for the POSIX functions, which can be used to allow
    other (user-level) threads to run.  */
 ssize_t ath_read (int fd, void *buf, size_t nbytes);
 ssize_t ath_write (int fd, const void *buf, size_t nbytes);
+#ifdef _WIN32
+ssize_t ath_select (int nfd, void *rset, void *wset, void *eset,
+                   struct timeval *timeout);
+ssize_t ath_waitpid (pid_t pid, int *status, int options);
+int ath_accept (int s, void *addr, int *length_ptr);
+int ath_connect (int s, void *addr, int length);
+int ath_sendmsg (int s, const void *msg, int flags);
+int ath_recvmsg (int s, void *msg, int flags);
+#else
 ssize_t ath_select (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
                    struct timeval *timeout);
 ssize_t ath_waitpid (pid_t pid, int *status, int options);
@@ -112,5 +127,6 @@ int ath_accept (int s, struct sockaddr *addr, socklen_t *length_ptr);
 int ath_connect (int s, struct sockaddr *addr, socklen_t length);
 int ath_sendmsg (int s, const struct msghdr *msg, int flags);
 int ath_recvmsg (int s, struct msghdr *msg, int flags);
+#endif 
 
 #endif /* ATH_H */