a8d4bb4f0fc59e0b3bb90b20674d1229b863997a
[reactos.git] / reactos / lib / 3rdparty / libxml2 / include / wsockcompat.h
1 /* include/wsockcompat.h
2 * Windows -> Berkeley Sockets compatibility things.
3 */
4
5 #if !defined __XML_WSOCKCOMPAT_H__
6 #define __XML_WSOCKCOMPAT_H__
7
8 #ifdef _WIN32_WCE
9 #include <winsock.h>
10 #else
11 #undef HAVE_ERRNO_H
12 #include <winsock2.h>
13
14 /* the following is a workaround a problem for 'inline' keyword in said
15 header when compiled with Borland C++ 6 */
16 #if defined(__BORLANDC__) && !defined(__cplusplus)
17 #define inline __inline
18 #define _inline __inline
19 #endif
20
21 #include <ws2tcpip.h>
22
23 /* Check if ws2tcpip.h is a recent version which provides getaddrinfo() */
24 #if defined(GetAddrInfo)
25 #include <wspiapi.h>
26 #define HAVE_GETADDRINFO
27 #endif
28 #endif
29
30 #ifdef __MINGW32__
31 /* Include <errno.h> here to ensure that it doesn't get included later
32 * (e.g. by iconv.h) and overwrites the definition of EWOULDBLOCK. */
33 #include <errno.h>
34 #undef EWOULDBLOCK
35 #endif
36
37 #if !defined SOCKLEN_T
38 #define SOCKLEN_T int
39 #endif
40
41 #define EWOULDBLOCK WSAEWOULDBLOCK
42 #define EINPROGRESS WSAEINPROGRESS
43 #define EALREADY WSAEALREADY
44 #define ENOTSOCK WSAENOTSOCK
45 #define EDESTADDRREQ WSAEDESTADDRREQ
46 #define EMSGSIZE WSAEMSGSIZE
47 #define EPROTOTYPE WSAEPROTOTYPE
48 #define ENOPROTOOPT WSAENOPROTOOPT
49 #define EPROTONOSUPPORT WSAEPROTONOSUPPORT
50 #define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
51 #define EOPNOTSUPP WSAEOPNOTSUPP
52 #define EPFNOSUPPORT WSAEPFNOSUPPORT
53 #define EAFNOSUPPORT WSAEAFNOSUPPORT
54 #define EADDRINUSE WSAEADDRINUSE
55 #define EADDRNOTAVAIL WSAEADDRNOTAVAIL
56 #define ENETDOWN WSAENETDOWN
57 #define ENETUNREACH WSAENETUNREACH
58 #define ENETRESET WSAENETRESET
59 #define ECONNABORTED WSAECONNABORTED
60 #define ECONNRESET WSAECONNRESET
61 #define ENOBUFS WSAENOBUFS
62 #define EISCONN WSAEISCONN
63 #define ENOTCONN WSAENOTCONN
64 #define ESHUTDOWN WSAESHUTDOWN
65 #define ETOOMANYREFS WSAETOOMANYREFS
66 #define ETIMEDOUT WSAETIMEDOUT
67 #define ECONNREFUSED WSAECONNREFUSED
68 #define ELOOP WSAELOOP
69 #define EHOSTDOWN WSAEHOSTDOWN
70 #define EHOSTUNREACH WSAEHOSTUNREACH
71 #define EPROCLIM WSAEPROCLIM
72 #define EUSERS WSAEUSERS
73 #define EDQUOT WSAEDQUOT
74 #define ESTALE WSAESTALE
75 #define EREMOTE WSAEREMOTE
76 /* These cause conflicts with the codes from errno.h. Since they are
77 not used in the relevant code (nanoftp, nanohttp), we can leave
78 them disabled.
79 #define ENAMETOOLONG WSAENAMETOOLONG
80 #define ENOTEMPTY WSAENOTEMPTY
81 */
82
83 #endif /* __XML_WSOCKCOMPAT_H__ */