1*1424dfb3Schristos /* A POSIX-like <errno.h>.
2*1424dfb3Schristos 
3*1424dfb3Schristos    Copyright (C) 2008-2020 Free Software Foundation, Inc.
4*1424dfb3Schristos 
5*1424dfb3Schristos    This program is free software; you can redistribute it and/or modify
6*1424dfb3Schristos    it under the terms of the GNU General Public License as published by
7*1424dfb3Schristos    the Free Software Foundation; either version 3, or (at your option)
8*1424dfb3Schristos    any later version.
9*1424dfb3Schristos 
10*1424dfb3Schristos    This program is distributed in the hope that it will be useful,
11*1424dfb3Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
12*1424dfb3Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*1424dfb3Schristos    GNU General Public License for more details.
14*1424dfb3Schristos 
15*1424dfb3Schristos    You should have received a copy of the GNU General Public License
16*1424dfb3Schristos    along with this program; if not, see <https://www.gnu.org/licenses/>.  */
17*1424dfb3Schristos 
18*1424dfb3Schristos #ifndef _@GUARD_PREFIX@_ERRNO_H
19*1424dfb3Schristos 
20*1424dfb3Schristos #if __GNUC__ >= 3
21*1424dfb3Schristos @PRAGMA_SYSTEM_HEADER@
22*1424dfb3Schristos #endif
23*1424dfb3Schristos @PRAGMA_COLUMNS@
24*1424dfb3Schristos 
25*1424dfb3Schristos /* The include_next requires a split double-inclusion guard.  */
26*1424dfb3Schristos #@INCLUDE_NEXT@ @NEXT_ERRNO_H@
27*1424dfb3Schristos 
28*1424dfb3Schristos #ifndef _@GUARD_PREFIX@_ERRNO_H
29*1424dfb3Schristos #define _@GUARD_PREFIX@_ERRNO_H
30*1424dfb3Schristos 
31*1424dfb3Schristos 
32*1424dfb3Schristos /* On native Windows platforms, many macros are not defined.  */
33*1424dfb3Schristos # if defined _WIN32 && ! defined __CYGWIN__
34*1424dfb3Schristos 
35*1424dfb3Schristos /* These are the same values as defined by MSVC 10, for interoperability.  */
36*1424dfb3Schristos 
37*1424dfb3Schristos #  ifndef ENOMSG
38*1424dfb3Schristos #   define ENOMSG    122
39*1424dfb3Schristos #   define GNULIB_defined_ENOMSG 1
40*1424dfb3Schristos #  endif
41*1424dfb3Schristos 
42*1424dfb3Schristos #  ifndef EIDRM
43*1424dfb3Schristos #   define EIDRM     111
44*1424dfb3Schristos #   define GNULIB_defined_EIDRM 1
45*1424dfb3Schristos #  endif
46*1424dfb3Schristos 
47*1424dfb3Schristos #  ifndef ENOLINK
48*1424dfb3Schristos #   define ENOLINK   121
49*1424dfb3Schristos #   define GNULIB_defined_ENOLINK 1
50*1424dfb3Schristos #  endif
51*1424dfb3Schristos 
52*1424dfb3Schristos #  ifndef EPROTO
53*1424dfb3Schristos #   define EPROTO    134
54*1424dfb3Schristos #   define GNULIB_defined_EPROTO 1
55*1424dfb3Schristos #  endif
56*1424dfb3Schristos 
57*1424dfb3Schristos #  ifndef EBADMSG
58*1424dfb3Schristos #   define EBADMSG   104
59*1424dfb3Schristos #   define GNULIB_defined_EBADMSG 1
60*1424dfb3Schristos #  endif
61*1424dfb3Schristos 
62*1424dfb3Schristos #  ifndef EOVERFLOW
63*1424dfb3Schristos #   define EOVERFLOW 132
64*1424dfb3Schristos #   define GNULIB_defined_EOVERFLOW 1
65*1424dfb3Schristos #  endif
66*1424dfb3Schristos 
67*1424dfb3Schristos #  ifndef ENOTSUP
68*1424dfb3Schristos #   define ENOTSUP   129
69*1424dfb3Schristos #   define GNULIB_defined_ENOTSUP 1
70*1424dfb3Schristos #  endif
71*1424dfb3Schristos 
72*1424dfb3Schristos #  ifndef ENETRESET
73*1424dfb3Schristos #   define ENETRESET 117
74*1424dfb3Schristos #   define GNULIB_defined_ENETRESET 1
75*1424dfb3Schristos #  endif
76*1424dfb3Schristos 
77*1424dfb3Schristos #  ifndef ECONNABORTED
78*1424dfb3Schristos #   define ECONNABORTED 106
79*1424dfb3Schristos #   define GNULIB_defined_ECONNABORTED 1
80*1424dfb3Schristos #  endif
81*1424dfb3Schristos 
82*1424dfb3Schristos #  ifndef ECANCELED
83*1424dfb3Schristos #   define ECANCELED 105
84*1424dfb3Schristos #   define GNULIB_defined_ECANCELED 1
85*1424dfb3Schristos #  endif
86*1424dfb3Schristos 
87*1424dfb3Schristos #  ifndef EOWNERDEAD
88*1424dfb3Schristos #   define EOWNERDEAD 133
89*1424dfb3Schristos #   define GNULIB_defined_EOWNERDEAD 1
90*1424dfb3Schristos #  endif
91*1424dfb3Schristos 
92*1424dfb3Schristos #  ifndef ENOTRECOVERABLE
93*1424dfb3Schristos #   define ENOTRECOVERABLE 127
94*1424dfb3Schristos #   define GNULIB_defined_ENOTRECOVERABLE 1
95*1424dfb3Schristos #  endif
96*1424dfb3Schristos 
97*1424dfb3Schristos #  ifndef EINPROGRESS
98*1424dfb3Schristos #   define EINPROGRESS     112
99*1424dfb3Schristos #   define EALREADY        103
100*1424dfb3Schristos #   define ENOTSOCK        128
101*1424dfb3Schristos #   define EDESTADDRREQ    109
102*1424dfb3Schristos #   define EMSGSIZE        115
103*1424dfb3Schristos #   define EPROTOTYPE      136
104*1424dfb3Schristos #   define ENOPROTOOPT     123
105*1424dfb3Schristos #   define EPROTONOSUPPORT 135
106*1424dfb3Schristos #   define EOPNOTSUPP      130
107*1424dfb3Schristos #   define EAFNOSUPPORT    102
108*1424dfb3Schristos #   define EADDRINUSE      100
109*1424dfb3Schristos #   define EADDRNOTAVAIL   101
110*1424dfb3Schristos #   define ENETDOWN        116
111*1424dfb3Schristos #   define ENETUNREACH     118
112*1424dfb3Schristos #   define ECONNRESET      108
113*1424dfb3Schristos #   define ENOBUFS         119
114*1424dfb3Schristos #   define EISCONN         113
115*1424dfb3Schristos #   define ENOTCONN        126
116*1424dfb3Schristos #   define ETIMEDOUT       138
117*1424dfb3Schristos #   define ECONNREFUSED    107
118*1424dfb3Schristos #   define ELOOP           114
119*1424dfb3Schristos #   define EHOSTUNREACH    110
120*1424dfb3Schristos #   define EWOULDBLOCK     140
121*1424dfb3Schristos #   define GNULIB_defined_ESOCK 1
122*1424dfb3Schristos #  endif
123*1424dfb3Schristos 
124*1424dfb3Schristos #  ifndef ETXTBSY
125*1424dfb3Schristos #   define ETXTBSY         139
126*1424dfb3Schristos #   define ENODATA         120  /* not required by POSIX */
127*1424dfb3Schristos #   define ENOSR           124  /* not required by POSIX */
128*1424dfb3Schristos #   define ENOSTR          125  /* not required by POSIX */
129*1424dfb3Schristos #   define ETIME           137  /* not required by POSIX */
130*1424dfb3Schristos #   define EOTHER          131  /* not required by POSIX */
131*1424dfb3Schristos #   define GNULIB_defined_ESTREAMS 1
132*1424dfb3Schristos #  endif
133*1424dfb3Schristos 
134*1424dfb3Schristos /* These are intentionally the same values as the WSA* error numbers, defined
135*1424dfb3Schristos    in <winsock2.h>.  */
136*1424dfb3Schristos #  define ESOCKTNOSUPPORT 10044  /* not required by POSIX */
137*1424dfb3Schristos #  define EPFNOSUPPORT    10046  /* not required by POSIX */
138*1424dfb3Schristos #  define ESHUTDOWN       10058  /* not required by POSIX */
139*1424dfb3Schristos #  define ETOOMANYREFS    10059  /* not required by POSIX */
140*1424dfb3Schristos #  define EHOSTDOWN       10064  /* not required by POSIX */
141*1424dfb3Schristos #  define EPROCLIM        10067  /* not required by POSIX */
142*1424dfb3Schristos #  define EUSERS          10068  /* not required by POSIX */
143*1424dfb3Schristos #  define EDQUOT          10069
144*1424dfb3Schristos #  define ESTALE          10070
145*1424dfb3Schristos #  define EREMOTE         10071  /* not required by POSIX */
146*1424dfb3Schristos #  define GNULIB_defined_EWINSOCK 1
147*1424dfb3Schristos 
148*1424dfb3Schristos # endif
149*1424dfb3Schristos 
150*1424dfb3Schristos 
151*1424dfb3Schristos /* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros
152*1424dfb3Schristos    EMULTIHOP, ENOLINK, EOVERFLOW are not defined.  */
153*1424dfb3Schristos # if @EMULTIHOP_HIDDEN@
154*1424dfb3Schristos #  define EMULTIHOP @EMULTIHOP_VALUE@
155*1424dfb3Schristos #  define GNULIB_defined_EMULTIHOP 1
156*1424dfb3Schristos # endif
157*1424dfb3Schristos # if @ENOLINK_HIDDEN@
158*1424dfb3Schristos #  define ENOLINK   @ENOLINK_VALUE@
159*1424dfb3Schristos #  define GNULIB_defined_ENOLINK 1
160*1424dfb3Schristos # endif
161*1424dfb3Schristos # if @EOVERFLOW_HIDDEN@
162*1424dfb3Schristos #  define EOVERFLOW @EOVERFLOW_VALUE@
163*1424dfb3Schristos #  define GNULIB_defined_EOVERFLOW 1
164*1424dfb3Schristos # endif
165*1424dfb3Schristos 
166*1424dfb3Schristos 
167*1424dfb3Schristos /* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK,
168*1424dfb3Schristos    EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined.
169*1424dfb3Schristos    Likewise, on NonStop Kernel, EDQUOT is not defined.
170*1424dfb3Schristos    Define them here.  Values >= 2000 seem safe to use: Solaris ESTALE = 151,
171*1424dfb3Schristos    HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133.
172*1424dfb3Schristos 
173*1424dfb3Schristos    Note: When one of these systems defines some of these macros some day,
174*1424dfb3Schristos    binaries will have to be recompiled so that they recognizes the new
175*1424dfb3Schristos    errno values from the system.  */
176*1424dfb3Schristos 
177*1424dfb3Schristos # ifndef ENOMSG
178*1424dfb3Schristos #  define ENOMSG    2000
179*1424dfb3Schristos #  define GNULIB_defined_ENOMSG 1
180*1424dfb3Schristos # endif
181*1424dfb3Schristos 
182*1424dfb3Schristos # ifndef EIDRM
183*1424dfb3Schristos #  define EIDRM     2001
184*1424dfb3Schristos #  define GNULIB_defined_EIDRM 1
185*1424dfb3Schristos # endif
186*1424dfb3Schristos 
187*1424dfb3Schristos # ifndef ENOLINK
188*1424dfb3Schristos #  define ENOLINK   2002
189*1424dfb3Schristos #  define GNULIB_defined_ENOLINK 1
190*1424dfb3Schristos # endif
191*1424dfb3Schristos 
192*1424dfb3Schristos # ifndef EPROTO
193*1424dfb3Schristos #  define EPROTO    2003
194*1424dfb3Schristos #  define GNULIB_defined_EPROTO 1
195*1424dfb3Schristos # endif
196*1424dfb3Schristos 
197*1424dfb3Schristos # ifndef EMULTIHOP
198*1424dfb3Schristos #  define EMULTIHOP 2004
199*1424dfb3Schristos #  define GNULIB_defined_EMULTIHOP 1
200*1424dfb3Schristos # endif
201*1424dfb3Schristos 
202*1424dfb3Schristos # ifndef EBADMSG
203*1424dfb3Schristos #  define EBADMSG   2005
204*1424dfb3Schristos #  define GNULIB_defined_EBADMSG 1
205*1424dfb3Schristos # endif
206*1424dfb3Schristos 
207*1424dfb3Schristos # ifndef EOVERFLOW
208*1424dfb3Schristos #  define EOVERFLOW 2006
209*1424dfb3Schristos #  define GNULIB_defined_EOVERFLOW 1
210*1424dfb3Schristos # endif
211*1424dfb3Schristos 
212*1424dfb3Schristos # ifndef ENOTSUP
213*1424dfb3Schristos #  define ENOTSUP   2007
214*1424dfb3Schristos #  define GNULIB_defined_ENOTSUP 1
215*1424dfb3Schristos # endif
216*1424dfb3Schristos 
217*1424dfb3Schristos # ifndef ENETRESET
218*1424dfb3Schristos #  define ENETRESET 2011
219*1424dfb3Schristos #  define GNULIB_defined_ENETRESET 1
220*1424dfb3Schristos # endif
221*1424dfb3Schristos 
222*1424dfb3Schristos # ifndef ECONNABORTED
223*1424dfb3Schristos #  define ECONNABORTED 2012
224*1424dfb3Schristos #  define GNULIB_defined_ECONNABORTED 1
225*1424dfb3Schristos # endif
226*1424dfb3Schristos 
227*1424dfb3Schristos # ifndef ESTALE
228*1424dfb3Schristos #  define ESTALE    2009
229*1424dfb3Schristos #  define GNULIB_defined_ESTALE 1
230*1424dfb3Schristos # endif
231*1424dfb3Schristos 
232*1424dfb3Schristos # ifndef EDQUOT
233*1424dfb3Schristos #  define EDQUOT 2010
234*1424dfb3Schristos #  define GNULIB_defined_EDQUOT 1
235*1424dfb3Schristos # endif
236*1424dfb3Schristos 
237*1424dfb3Schristos # ifndef ECANCELED
238*1424dfb3Schristos #  define ECANCELED 2008
239*1424dfb3Schristos #  define GNULIB_defined_ECANCELED 1
240*1424dfb3Schristos # endif
241*1424dfb3Schristos 
242*1424dfb3Schristos /* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not
243*1424dfb3Schristos    defined.  */
244*1424dfb3Schristos 
245*1424dfb3Schristos # ifndef EOWNERDEAD
246*1424dfb3Schristos #  if defined __sun
247*1424dfb3Schristos     /* Use the same values as defined for Solaris >= 8, for
248*1424dfb3Schristos        interoperability.  */
249*1424dfb3Schristos #   define EOWNERDEAD      58
250*1424dfb3Schristos #   define ENOTRECOVERABLE 59
251*1424dfb3Schristos #  elif defined _WIN32 && ! defined __CYGWIN__
252*1424dfb3Schristos     /* We have a conflict here: pthreads-win32 defines these values
253*1424dfb3Schristos        differently than MSVC 10.  It's hairy to decide which one to use.  */
254*1424dfb3Schristos #   if defined __MINGW32__ && !defined USE_WINDOWS_THREADS
255*1424dfb3Schristos      /* Use the same values as defined by pthreads-win32, for
256*1424dfb3Schristos         interoperability.  */
257*1424dfb3Schristos #    define EOWNERDEAD      43
258*1424dfb3Schristos #    define ENOTRECOVERABLE 44
259*1424dfb3Schristos #   else
260*1424dfb3Schristos      /* Use the same values as defined by MSVC 10, for
261*1424dfb3Schristos         interoperability.  */
262*1424dfb3Schristos #    define EOWNERDEAD      133
263*1424dfb3Schristos #    define ENOTRECOVERABLE 127
264*1424dfb3Schristos #   endif
265*1424dfb3Schristos #  else
266*1424dfb3Schristos #   define EOWNERDEAD      2013
267*1424dfb3Schristos #   define ENOTRECOVERABLE 2014
268*1424dfb3Schristos #  endif
269*1424dfb3Schristos #  define GNULIB_defined_EOWNERDEAD 1
270*1424dfb3Schristos #  define GNULIB_defined_ENOTRECOVERABLE 1
271*1424dfb3Schristos # endif
272*1424dfb3Schristos 
273*1424dfb3Schristos # ifndef EILSEQ
274*1424dfb3Schristos #  define EILSEQ 2015
275*1424dfb3Schristos #  define GNULIB_defined_EILSEQ 1
276*1424dfb3Schristos # endif
277*1424dfb3Schristos 
278*1424dfb3Schristos #endif /* _@GUARD_PREFIX@_ERRNO_H */
279*1424dfb3Schristos #endif /* _@GUARD_PREFIX@_ERRNO_H */
280