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