xref: /llvm-project/libcxx/include/errno.h (revision b9a2658a3e8bd13b0f9e7a8a440832a95b377216)
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