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