GNU libmicrohttpd  0.9.29
w32functions.h
Go to the documentation of this file.
1 /*
2  This file is part of libmicrohttpd
3  Copyright (C) 2014 Karlson2k (Evgeny Grin)
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation; either
8  version 2.1 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with this library.
17  If not, see <http://www.gnu.org/licenses/>.
18 */
19 
26 #ifndef MHD_W32FUNCTIONS_H
27 #define MHD_W32FUNCTIONS_H
28 #ifndef _WIN32
29 #error w32functions.h is designed only for W32 systems
30 #endif
31 
32 #include "platform.h"
33 #include <errno.h>
34 #include <winsock2.h>
35 #include "platform_interface.h"
36 
37 #ifdef __cplusplus
38 extern "C"
39 {
40 #endif
41 
42 #define MHDW32ERRBASE 3300
43 
44 #ifndef EWOULDBLOCK
45 #define EWOULDBLOCK (MHDW32ERRBASE+1)
46 #endif
47 #ifndef EINPROGRESS
48 #define EINPROGRESS (MHDW32ERRBASE+2)
49 #endif
50 #ifndef EALREADY
51 #define EALREADY (MHDW32ERRBASE+3)
52 #endif
53 #ifndef ENOTSOCK
54 #define ENOTSOCK (MHDW32ERRBASE+4)
55 #endif
56 #ifndef EDESTADDRREQ
57 #define EDESTADDRREQ (MHDW32ERRBASE+5)
58 #endif
59 #ifndef EMSGSIZE
60 #define EMSGSIZE (MHDW32ERRBASE+6)
61 #endif
62 #ifndef EPROTOTYPE
63 #define EPROTOTYPE (MHDW32ERRBASE+7)
64 #endif
65 #ifndef ENOPROTOOPT
66 #define ENOPROTOOPT (MHDW32ERRBASE+8)
67 #endif
68 #ifndef EPROTONOSUPPORT
69 #define EPROTONOSUPPORT (MHDW32ERRBASE+9)
70 #endif
71 #ifndef EOPNOTSUPP
72 #define EOPNOTSUPP (MHDW32ERRBASE+10)
73 #endif
74 #ifndef EAFNOSUPPORT
75 #define EAFNOSUPPORT (MHDW32ERRBASE+11)
76 #endif
77 #ifndef EADDRINUSE
78 #define EADDRINUSE (MHDW32ERRBASE+12)
79 #endif
80 #ifndef EADDRNOTAVAIL
81 #define EADDRNOTAVAIL (MHDW32ERRBASE+13)
82 #endif
83 #ifndef ENETDOWN
84 #define ENETDOWN (MHDW32ERRBASE+14)
85 #endif
86 #ifndef ENETUNREACH
87 #define ENETUNREACH (MHDW32ERRBASE+15)
88 #endif
89 #ifndef ENETRESET
90 #define ENETRESET (MHDW32ERRBASE+16)
91 #endif
92 #ifndef ECONNABORTED
93 #define ECONNABORTED (MHDW32ERRBASE+17)
94 #endif
95 #ifndef ECONNRESET
96 #define ECONNRESET (MHDW32ERRBASE+18)
97 #endif
98 #ifndef ENOBUFS
99 #define ENOBUFS (MHDW32ERRBASE+19)
100 #endif
101 #ifndef EISCONN
102 #define EISCONN (MHDW32ERRBASE+20)
103 #endif
104 #ifndef ENOTCONN
105 #define ENOTCONN (MHDW32ERRBASE+21)
106 #endif
107 #ifndef ETOOMANYREFS
108 #define ETOOMANYREFS (MHDW32ERRBASE+22)
109 #endif
110 #ifndef ECONNREFUSED
111 #define ECONNREFUSED (MHDW32ERRBASE+23)
112 #endif
113 #ifndef ELOOP
114 #define ELOOP (MHDW32ERRBASE+24)
115 #endif
116 #ifndef EHOSTDOWN
117 #define EHOSTDOWN (MHDW32ERRBASE+25)
118 #endif
119 #ifndef EHOSTUNREACH
120 #define EHOSTUNREACH (MHDW32ERRBASE+26)
121 #endif
122 #ifndef EPROCLIM
123 #define EPROCLIM (MHDW32ERRBASE+27)
124 #endif
125 #ifndef EUSERS
126 #define EUSERS (MHDW32ERRBASE+28)
127 #endif
128 #ifndef EDQUOT
129 #define EDQUOT (MHDW32ERRBASE+29)
130 #endif
131 #ifndef ESTALE
132 #define ESTALE (MHDW32ERRBASE+30)
133 #endif
134 #ifndef EREMOTE
135 #define EREMOTE (MHDW32ERRBASE+31)
136 #endif
137 #ifndef ESOCKTNOSUPPORT
138 #define ESOCKTNOSUPPORT (MHDW32ERRBASE+32)
139 #endif
140 #ifndef EPFNOSUPPORT
141 #define EPFNOSUPPORT (MHDW32ERRBASE+33)
142 #endif
143 #ifndef ESHUTDOWN
144 #define ESHUTDOWN (MHDW32ERRBASE+34)
145 #endif
146 #ifndef ENODATA
147 #define ENODATA (MHDW32ERRBASE+35)
148 #endif
149 #ifndef ETIMEDOUT
150 #define ETIMEDOUT (MHDW32ERRBASE+36)
151 #endif
152 
158 
166 const char* MHD_W32_strerror_(int errnum);
167 
172 const char* MHD_W32_strerror_last_winsock_(void);
173 
178 void MHD_W32_set_last_winsock_error_(int errnum);
179 
185 int MHD_W32_pair_of_sockets_(SOCKET sockets_pair[2]);
186 
192 int MHD_W32_random_(void);
193 
194 /* Emulate snprintf function on W32 */
195 int W32_snprintf(char *__restrict s, size_t n, const char *__restrict format, ...);
196 
197 #ifndef _MSC_FULL_VER
198 /* Thread name available only for VC-compiler */
199 static void W32_SetThreadName(const DWORD thread_id, const char *thread_name)
200 { }
201 #else /* _MSC_FULL_VER */
202 
207 void W32_SetThreadName(const DWORD thread_id, const char *thread_name);
208 #endif
209 
210 #ifdef __cplusplus
211 }
212 #endif
213 #endif /* MHD_W32FUNCTIONS_H */
int MHD_W32_errno_from_winsock_(void)
internal platform abstraction functions
int W32_snprintf(char *__restrict s, size_t n, const char *__restrict format,...)
static void W32_SetThreadName(const DWORD thread_id, const char *thread_name)
Definition: w32functions.h:199
platform-specific includes for libmicrohttpd
const char * MHD_W32_strerror_(int errnum)
void MHD_W32_set_last_winsock_error_(int errnum)
int MHD_W32_random_(void)
int MHD_W32_pair_of_sockets_(SOCKET sockets_pair[2])
const char * MHD_W32_strerror_last_winsock_(void)