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