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