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