1 | // -*- C++ -*- |
2 | //===----------------------------------------------------------------------===// |
3 | // |
4 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
5 | // See https://llvm.org/LICENSE.txt for license information. |
6 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
7 | // |
8 | //===----------------------------------------------------------------------===// |
9 | |
10 | #ifndef _LIBCPP_ERRNO_H |
11 | #define _LIBCPP_ERRNO_H |
12 | |
13 | /* |
14 | errno.h synopsis |
15 | |
16 | Macros: |
17 | |
18 | EDOM |
19 | EILSEQ // C99 |
20 | ERANGE |
21 | errno |
22 | |
23 | */ |
24 | |
25 | #if defined(__cplusplus) && __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) |
26 | # include <__cxx03/errno.h> |
27 | #else |
28 | # include <__config> |
29 | |
30 | # if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
31 | # pragma GCC system_header |
32 | # endif |
33 | |
34 | # if __has_include_next(<errno.h>) |
35 | # include_next <errno.h> |
36 | # endif |
37 | |
38 | # ifdef __cplusplus |
39 | |
40 | # if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) |
41 | |
42 | # ifdef ELAST |
43 | |
44 | static const int __elast1 = ELAST + 1; |
45 | static const int __elast2 = ELAST + 2; |
46 | |
47 | # else |
48 | |
49 | static const int __elast1 = 104; |
50 | static const int __elast2 = 105; |
51 | |
52 | # endif |
53 | |
54 | # ifdef ENOTRECOVERABLE |
55 | |
56 | # define EOWNERDEAD __elast1 |
57 | |
58 | # ifdef ELAST |
59 | # undef ELAST |
60 | # define ELAST EOWNERDEAD |
61 | # endif |
62 | |
63 | # elif defined(EOWNERDEAD) |
64 | |
65 | # define ENOTRECOVERABLE __elast1 |
66 | # ifdef ELAST |
67 | # undef ELAST |
68 | # define ELAST ENOTRECOVERABLE |
69 | # endif |
70 | |
71 | # else // defined(EOWNERDEAD) |
72 | |
73 | # define EOWNERDEAD __elast1 |
74 | # define ENOTRECOVERABLE __elast2 |
75 | # ifdef ELAST |
76 | # undef ELAST |
77 | # define ELAST ENOTRECOVERABLE |
78 | # endif |
79 | |
80 | # endif // defined(EOWNERDEAD) |
81 | |
82 | # endif // !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) |
83 | |
84 | // supply errno values likely to be missing, particularly on Windows |
85 | |
86 | # ifndef EAFNOSUPPORT |
87 | # define EAFNOSUPPORT 9901 |
88 | # endif |
89 | |
90 | # ifndef EADDRINUSE |
91 | # define EADDRINUSE 9902 |
92 | # endif |
93 | |
94 | # ifndef EADDRNOTAVAIL |
95 | # define EADDRNOTAVAIL 9903 |
96 | # endif |
97 | |
98 | # ifndef EISCONN |
99 | # define EISCONN 9904 |
100 | # endif |
101 | |
102 | # ifndef EBADMSG |
103 | # define EBADMSG 9905 |
104 | # endif |
105 | |
106 | # ifndef ECONNABORTED |
107 | # define ECONNABORTED 9906 |
108 | # endif |
109 | |
110 | # ifndef EALREADY |
111 | # define EALREADY 9907 |
112 | # endif |
113 | |
114 | # ifndef ECONNREFUSED |
115 | # define ECONNREFUSED 9908 |
116 | # endif |
117 | |
118 | # ifndef ECONNRESET |
119 | # define ECONNRESET 9909 |
120 | # endif |
121 | |
122 | # ifndef EDESTADDRREQ |
123 | # define EDESTADDRREQ 9910 |
124 | # endif |
125 | |
126 | # ifndef EHOSTUNREACH |
127 | # define EHOSTUNREACH 9911 |
128 | # endif |
129 | |
130 | # ifndef EIDRM |
131 | # define EIDRM 9912 |
132 | # endif |
133 | |
134 | # ifndef EMSGSIZE |
135 | # define EMSGSIZE 9913 |
136 | # endif |
137 | |
138 | # ifndef ENETDOWN |
139 | # define ENETDOWN 9914 |
140 | # endif |
141 | |
142 | # ifndef ENETRESET |
143 | # define ENETRESET 9915 |
144 | # endif |
145 | |
146 | # ifndef ENETUNREACH |
147 | # define ENETUNREACH 9916 |
148 | # endif |
149 | |
150 | # ifndef ENOBUFS |
151 | # define ENOBUFS 9917 |
152 | # endif |
153 | |
154 | # ifndef ENOLINK |
155 | # define ENOLINK 9918 |
156 | # endif |
157 | |
158 | # ifndef ENODATA |
159 | # define ENODATA 9919 |
160 | # endif |
161 | |
162 | # ifndef ENOMSG |
163 | # define ENOMSG 9920 |
164 | # endif |
165 | |
166 | # ifndef ENOPROTOOPT |
167 | # define ENOPROTOOPT 9921 |
168 | # endif |
169 | |
170 | # ifndef ENOSR |
171 | # define ENOSR 9922 |
172 | # endif |
173 | |
174 | # ifndef ENOTSOCK |
175 | # define ENOTSOCK 9923 |
176 | # endif |
177 | |
178 | # ifndef ENOSTR |
179 | # define ENOSTR 9924 |
180 | # endif |
181 | |
182 | # ifndef ENOTCONN |
183 | # define ENOTCONN 9925 |
184 | # endif |
185 | |
186 | # ifndef ENOTSUP |
187 | # define ENOTSUP 9926 |
188 | # endif |
189 | |
190 | # ifndef ECANCELED |
191 | # define ECANCELED 9927 |
192 | # endif |
193 | |
194 | # ifndef EINPROGRESS |
195 | # define EINPROGRESS 9928 |
196 | # endif |
197 | |
198 | # ifndef EOPNOTSUPP |
199 | # define EOPNOTSUPP 9929 |
200 | # endif |
201 | |
202 | # ifndef EWOULDBLOCK |
203 | # define EWOULDBLOCK 9930 |
204 | # endif |
205 | |
206 | # ifndef EOWNERDEAD |
207 | # define EOWNERDEAD 9931 |
208 | # endif |
209 | |
210 | # ifndef EPROTO |
211 | # define EPROTO 9932 |
212 | # endif |
213 | |
214 | # ifndef EPROTONOSUPPORT |
215 | # define EPROTONOSUPPORT 9933 |
216 | # endif |
217 | |
218 | # ifndef ENOTRECOVERABLE |
219 | # define ENOTRECOVERABLE 9934 |
220 | # endif |
221 | |
222 | # ifndef ETIME |
223 | # define ETIME 9935 |
224 | # endif |
225 | |
226 | # ifndef ETXTBSY |
227 | # define ETXTBSY 9936 |
228 | # endif |
229 | |
230 | # ifndef ETIMEDOUT |
231 | # define ETIMEDOUT 9938 |
232 | # endif |
233 | |
234 | # ifndef ELOOP |
235 | # define ELOOP 9939 |
236 | # endif |
237 | |
238 | # ifndef EOVERFLOW |
239 | # define EOVERFLOW 9940 |
240 | # endif |
241 | |
242 | # ifndef EPROTOTYPE |
243 | # define EPROTOTYPE 9941 |
244 | # endif |
245 | |
246 | # ifndef ENOSYS |
247 | # define ENOSYS 9942 |
248 | # endif |
249 | |
250 | # ifndef EINVAL |
251 | # define EINVAL 9943 |
252 | # endif |
253 | |
254 | # ifndef ERANGE |
255 | # define ERANGE 9944 |
256 | # endif |
257 | |
258 | # ifndef EILSEQ |
259 | # define EILSEQ 9945 |
260 | # endif |
261 | |
262 | // Windows Mobile doesn't appear to define these: |
263 | |
264 | # ifndef E2BIG |
265 | # define E2BIG 9946 |
266 | # endif |
267 | |
268 | # ifndef EDOM |
269 | # define EDOM 9947 |
270 | # endif |
271 | |
272 | # ifndef EFAULT |
273 | # define EFAULT 9948 |
274 | # endif |
275 | |
276 | # ifndef EBADF |
277 | # define EBADF 9949 |
278 | # endif |
279 | |
280 | # ifndef EPIPE |
281 | # define EPIPE 9950 |
282 | # endif |
283 | |
284 | # ifndef EXDEV |
285 | # define EXDEV 9951 |
286 | # endif |
287 | |
288 | # ifndef EBUSY |
289 | # define EBUSY 9952 |
290 | # endif |
291 | |
292 | # ifndef ENOTEMPTY |
293 | # define ENOTEMPTY 9953 |
294 | # endif |
295 | |
296 | # ifndef ENOEXEC |
297 | # define ENOEXEC 9954 |
298 | # endif |
299 | |
300 | # ifndef EEXIST |
301 | # define EEXIST 9955 |
302 | # endif |
303 | |
304 | # ifndef EFBIG |
305 | # define EFBIG 9956 |
306 | # endif |
307 | |
308 | # ifndef ENAMETOOLONG |
309 | # define ENAMETOOLONG 9957 |
310 | # endif |
311 | |
312 | # ifndef ENOTTY |
313 | # define ENOTTY 9958 |
314 | # endif |
315 | |
316 | # ifndef EINTR |
317 | # define EINTR 9959 |
318 | # endif |
319 | |
320 | # ifndef ESPIPE |
321 | # define ESPIPE 9960 |
322 | # endif |
323 | |
324 | # ifndef EIO |
325 | # define EIO 9961 |
326 | # endif |
327 | |
328 | # ifndef EISDIR |
329 | # define EISDIR 9962 |
330 | # endif |
331 | |
332 | # ifndef ECHILD |
333 | # define ECHILD 9963 |
334 | # endif |
335 | |
336 | # ifndef ENOLCK |
337 | # define ENOLCK 9964 |
338 | # endif |
339 | |
340 | # ifndef ENOSPC |
341 | # define ENOSPC 9965 |
342 | # endif |
343 | |
344 | # ifndef ENXIO |
345 | # define ENXIO 9966 |
346 | # endif |
347 | |
348 | # ifndef ENODEV |
349 | # define ENODEV 9967 |
350 | # endif |
351 | |
352 | # ifndef ENOENT |
353 | # define ENOENT 9968 |
354 | # endif |
355 | |
356 | # ifndef ESRCH |
357 | # define ESRCH 9969 |
358 | # endif |
359 | |
360 | # ifndef ENOTDIR |
361 | # define ENOTDIR 9970 |
362 | # endif |
363 | |
364 | # ifndef ENOMEM |
365 | # define ENOMEM 9971 |
366 | # endif |
367 | |
368 | # ifndef EPERM |
369 | # define EPERM 9972 |
370 | # endif |
371 | |
372 | # ifndef EACCES |
373 | # define EACCES 9973 |
374 | # endif |
375 | |
376 | # ifndef EROFS |
377 | # define EROFS 9974 |
378 | # endif |
379 | |
380 | # ifndef EDEADLK |
381 | # define EDEADLK 9975 |
382 | # endif |
383 | |
384 | # ifndef EAGAIN |
385 | # define EAGAIN 9976 |
386 | # endif |
387 | |
388 | # ifndef ENFILE |
389 | # define ENFILE 9977 |
390 | # endif |
391 | |
392 | # ifndef EMFILE |
393 | # define EMFILE 9978 |
394 | # endif |
395 | |
396 | # ifndef EMLINK |
397 | # define EMLINK 9979 |
398 | # endif |
399 | |
400 | # endif // __cplusplus |
401 | #endif // defined(__cplusplus) && __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) |
402 | |
403 | #endif // _LIBCPP_ERRNO_H |
404 | |