Go to the documentation of this file.
34 #ifndef MHD_PLATFORM_H
35 #define MHD_PLATFORM_H
37 #include "MHD_config.h"
39 #ifndef BUILDING_MHD_LIB
43 #if defined(_WIN32) && defined(MHD_W32LIB)
44 #define _MHD_EXTERN extern
45 #elif defined (_WIN32) && defined(MHD_W32DLL)
46 #define _MHD_EXTERN __declspec(dllimport)
48 #define _MHD_EXTERN extern
50 #elif !defined(_MHD_EXTERN)
51 #if defined(_WIN32) && defined(MHD_W32LIB)
52 #define _MHD_EXTERN extern
53 #elif defined (_WIN32) && defined(MHD_W32DLL)
54 #define _MHD_EXTERN extern __declspec(dllexport)
56 #define _MHD_EXTERN extern
60 #define _XOPEN_SOURCE_EXTENDED 1
63 #define _OPEN_SYS_SOCK_IPV6
64 #define _OPEN_MSGQ_EXT
70 #define _WIN32_WINNT 0x0501
72 #if _WIN32_WINNT < 0x0501
73 #error "Headers for Windows XP or later are required"
74 #endif // _WIN32_WINNT < 0x0501
75 #endif // _WIN32_WINNT
76 #ifndef WIN32_LEAN_AND_MEAN
77 #define WIN32_LEAN_AND_MEAN 1
93 #ifdef MHD_USE_POSIX_THREADS
96 #define HAVE_CONFIG_H 1
97 #endif // MHD_USE_POSIX_THREADS
107 #include <netinet/in.h>
109 #include <sys/mman.h>
110 #define RESTRICT __restrict__
116 #if HAVE_SYS_SELECT_H
117 #include <sys/select.h>
120 #include <sys/types.h>
123 #include <sys/time.h>
126 #include <sys/stat.h>
132 #include <sys/mman.h>
137 #if HAVE_NETINET_IN_H
138 #include <netinet/in.h>
143 #if HAVE_SYS_SOCKET_H
144 #include <sys/socket.h>
147 #include <arpa/inet.h>
151 #if defined(_WIN32) && !defined(__CYGWIN__)
152 #include <ws2tcpip.h>
153 #define sleep(seconds) (SleepEx((seconds)*1000, 1)/1000)
154 #define usleep(useconds) (void)SleepEx((useconds)/1000, 1)
157 #if !defined(SHUT_WR) && defined(SD_SEND)
158 #define SHUT_WR SD_SEND
160 #if !defined(SHUT_RD) && defined(SD_RECEIVE)
161 #define SHUT_RD SD_RECEIVE
163 #if !defined(SHUT_RDWR) && defined(SD_BOTH)
164 #define SHUT_RDWR SD_BOTH
167 #if defined(_MSC_FULL_VER) && !defined (_SSIZE_T_DEFINED)
168 #define _SSIZE_T_DEFINED
169 typedef intptr_t ssize_t;
170 #endif // !_SSIZE_T_DEFINED */
171 #ifndef MHD_SOCKET_DEFINED
175 #if !defined(_WIN32) || defined(_SYS_TYPES_FD_SET)
176 #define MHD_POSIX_SOCKETS 1
178 #define MHD_INVALID_SOCKET (-1)
180 #define MHD_WINSOCK_SOCKETS 1
181 #include <winsock2.h>
183 #define MHD_INVALID_SOCKET (INVALID_SOCKET)
185 #define MHD_SOCKET_DEFINED 1
189 #if defined(_WIN32) && !defined(MHD_DONT_USE_PIPES)
190 #define MHD_DONT_USE_PIPES 1
194 #ifndef MHD_DONT_USE_PIPES
200 #if !defined(IPPROTO_IPV6) && defined(_MSC_FULL_VER) && _WIN32_WINNT >= 0x0501
202 #define IPPROTO_IPV6 IPPROTO_IPV6