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