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