2005-02-05 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / io-layer / sockets.h
index cb897ae43d810fe4df46aab54aa4ff8570f93458..19268c9b68b8f831c46bcc2beb3372859260a9da 100644 (file)
 #define WSADESCRIPTION_LEN 256
 #define WSASYS_STATUS_LEN 128
 
-#ifdef __APPLE__
-typedef unsigned int socklen_t;
-#endif
-
 typedef struct 
 {
        guint16 wVersion;
@@ -47,78 +43,24 @@ extern void WSASetLastError(int error);
 extern int WSAGetLastError(void);
 extern int closesocket(guint32 handle);
 
-#ifndef _WAPI_BUILDING
-#define accept _wapi_accept
-#define bind _wapi_bind
-#define connect _wapi_connect
-#define getpeername _wapi_getpeername
-#define getsockname _wapi_getsockname
-#define getsockopt _wapi_getsockopt
-#define listen _wapi_listen
-#define recv _wapi_recv
-#define recvfrom _wapi_recvfrom
-#define send _wapi_send
-#define sendto _wapi_sendto
-#define setsockopt _wapi_setsockopt
-#define shutdown _wapi_shutdown
-#define socket _wapi_socket
-#define gethostbyname _wapi_gethostbyname
-#define select _wapi_select
-
-#ifdef FD_CLR
-#undef FD_CLR
-#endif
-
-#ifdef FD_ISSET
-#undef FD_ISSET
-#endif
-
-#ifdef FD_SET
-#undef FD_SET
-#endif
-
-/* No need to wrap FD_ZERO because it doesnt involve file
- * descriptors
-*/
-#define FD_CLR _wapi_FD_CLR
-#define FD_ISSET _wapi_FD_ISSET
-#define FD_SET _wapi_FD_SET
-
-#endif /* _WAPI_BUILDING */
-
-extern guint32 _wapi_accept(guint32 handle, struct sockaddr *addr,
-                           socklen_t *addrlen);
-extern int _wapi_bind(guint32 handle, struct sockaddr *my_addr,
-                     socklen_t addrlen);
-extern int _wapi_connect(guint32 handle, const struct sockaddr *serv_addr,
-                        socklen_t addrlen);
-extern int _wapi_getpeername(guint32 handle, struct sockaddr *name,
-                            socklen_t *namelen);
-extern int _wapi_getsockname(guint32 handle, struct sockaddr *name,
-                            socklen_t *namelen);
-extern int _wapi_getsockopt(guint32 handle, int level, int optname,
-                           void *optval, socklen_t *optlen);
-extern int _wapi_listen(guint32 handle, int backlog);
-extern int _wapi_recv(guint32 handle, void *buf, size_t len, int recv_flags);
-extern int _wapi_recvfrom(guint32 handle, void *buf, size_t len,
-                         int recv_flags, struct sockaddr *from,
-                         socklen_t *fromlen);
-extern int _wapi_send(guint32 handle, const void *msg, size_t len,
-                     int send_flags);
-extern int _wapi_sendto(guint32 handle, const void *msg, size_t len,
-                       int send_flags, const struct sockaddr *to,
-                       socklen_t tolen);
-extern int _wapi_setsockopt(guint32 handle, int level, int optname,
-                           const void *optval, socklen_t optlen);
-extern int _wapi_shutdown(guint32 handle, int how);
-extern guint32 _wapi_socket(int domain, int type, int protocol);;
-extern struct hostent *_wapi_gethostbyname(const char *hostname);
-extern int _wapi_select(int nfds, fd_set *readfds, fd_set *writefds,
-                       fd_set *exceptfds, struct timeval *timeout);
-extern void _wapi_FD_CLR(guint32 handle, fd_set *set);
-extern int _wapi_FD_ISSET(guint32 handle, fd_set *set);
-extern void _wapi_FD_SET(guint32 handle, fd_set *set);
-
 extern int ioctlsocket(guint32 handle, gint32 command, gpointer arg);
+extern int WSAIoctl (guint32 handle, gint32 command,
+                    gchar *input, gint i_len,
+                    gchar *output, gint o_len, glong *written,
+                    void *unused1, void *unused2);
+
+#ifndef PLATFORM_WIN32
+typedef void (*SocketAsyncCB) (guint32 error, guint32 numbytes, gpointer ares);
+
+gboolean _wapi_socket_async_read (gpointer handle, gpointer buffer,
+                                 guint32 numbytes,
+                                 guint32 *bytesread, gpointer ares,
+                                 SocketAsyncCB callback);
+
+gboolean _wapi_socket_async_write (gpointer handle, gpointer buffer,
+                                 guint32 numbytes,
+                                 guint32 *bytesread, gpointer ares,
+                                 SocketAsyncCB callback);
+#endif
 
 #endif /* _WAPI_SOCKETS_H_ */