| // -*- C++ -*- | 
 | //===----------------------------------------------------------------------===// | 
 | // | 
 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
 | // See https://llvm.org/LICENSE.txt for license information. | 
 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 |  | 
 | #ifndef _LIBCPP_ERRNO_H | 
 | #define _LIBCPP_ERRNO_H | 
 |  | 
 | /* | 
 |     errno.h synopsis | 
 |  | 
 | Macros: | 
 |  | 
 |     EDOM | 
 |     EILSEQ  // C99 | 
 |     ERANGE | 
 |     errno | 
 |  | 
 | */ | 
 |  | 
 | #include <__config> | 
 |  | 
 | #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) | 
 | #  pragma GCC system_header | 
 | #endif | 
 |  | 
 | #if __has_include_next(<errno.h>) | 
 | #  include_next <errno.h> | 
 | #endif | 
 |  | 
 | #ifdef __cplusplus | 
 |  | 
 | #if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) | 
 |  | 
 | #ifdef ELAST | 
 |  | 
 | static const int __elast1 = ELAST+1; | 
 | static const int __elast2 = ELAST+2; | 
 |  | 
 | #else | 
 |  | 
 | static const int __elast1 = 104; | 
 | static const int __elast2 = 105; | 
 |  | 
 | #endif | 
 |  | 
 | #ifdef ENOTRECOVERABLE | 
 |  | 
 | #define EOWNERDEAD __elast1 | 
 |  | 
 | #ifdef ELAST | 
 | #undef ELAST | 
 | #define ELAST EOWNERDEAD | 
 | #endif | 
 |  | 
 | #elif defined(EOWNERDEAD) | 
 |  | 
 | #define ENOTRECOVERABLE __elast1 | 
 | #ifdef ELAST | 
 | #undef ELAST | 
 | #define ELAST ENOTRECOVERABLE | 
 | #endif | 
 |  | 
 | #else  // defined(EOWNERDEAD) | 
 |  | 
 | #define EOWNERDEAD __elast1 | 
 | #define ENOTRECOVERABLE __elast2 | 
 | #ifdef ELAST | 
 | #undef ELAST | 
 | #define ELAST ENOTRECOVERABLE | 
 | #endif | 
 |  | 
 | #endif // defined(EOWNERDEAD) | 
 |  | 
 | #endif // !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) | 
 |  | 
 | //  supply errno values likely to be missing, particularly on Windows | 
 |  | 
 | #ifndef EAFNOSUPPORT | 
 | #define EAFNOSUPPORT 9901 | 
 | #endif | 
 |  | 
 | #ifndef EADDRINUSE | 
 | #define EADDRINUSE 9902 | 
 | #endif | 
 |  | 
 | #ifndef EADDRNOTAVAIL | 
 | #define EADDRNOTAVAIL 9903 | 
 | #endif | 
 |  | 
 | #ifndef EISCONN | 
 | #define EISCONN 9904 | 
 | #endif | 
 |  | 
 | #ifndef EBADMSG | 
 | #define EBADMSG 9905 | 
 | #endif | 
 |  | 
 | #ifndef ECONNABORTED | 
 | #define ECONNABORTED 9906 | 
 | #endif | 
 |  | 
 | #ifndef EALREADY | 
 | #define EALREADY 9907 | 
 | #endif | 
 |  | 
 | #ifndef ECONNREFUSED | 
 | #define ECONNREFUSED 9908 | 
 | #endif | 
 |  | 
 | #ifndef ECONNRESET | 
 | #define ECONNRESET 9909 | 
 | #endif | 
 |  | 
 | #ifndef EDESTADDRREQ | 
 | #define EDESTADDRREQ 9910 | 
 | #endif | 
 |  | 
 | #ifndef EHOSTUNREACH | 
 | #define EHOSTUNREACH 9911 | 
 | #endif | 
 |  | 
 | #ifndef EIDRM | 
 | #define EIDRM 9912 | 
 | #endif | 
 |  | 
 | #ifndef EMSGSIZE | 
 | #define EMSGSIZE 9913 | 
 | #endif | 
 |  | 
 | #ifndef ENETDOWN | 
 | #define ENETDOWN 9914 | 
 | #endif | 
 |  | 
 | #ifndef ENETRESET | 
 | #define ENETRESET 9915 | 
 | #endif | 
 |  | 
 | #ifndef ENETUNREACH | 
 | #define ENETUNREACH 9916 | 
 | #endif | 
 |  | 
 | #ifndef ENOBUFS | 
 | #define ENOBUFS 9917 | 
 | #endif | 
 |  | 
 | #ifndef ENOLINK | 
 | #define ENOLINK 9918 | 
 | #endif | 
 |  | 
 | #ifndef ENODATA | 
 | #define ENODATA 9919 | 
 | #endif | 
 |  | 
 | #ifndef ENOMSG | 
 | #define ENOMSG 9920 | 
 | #endif | 
 |  | 
 | #ifndef ENOPROTOOPT | 
 | #define ENOPROTOOPT 9921 | 
 | #endif | 
 |  | 
 | #ifndef ENOSR | 
 | #define ENOSR 9922 | 
 | #endif | 
 |  | 
 | #ifndef ENOTSOCK | 
 | #define ENOTSOCK 9923 | 
 | #endif | 
 |  | 
 | #ifndef ENOSTR | 
 | #define ENOSTR 9924 | 
 | #endif | 
 |  | 
 | #ifndef ENOTCONN | 
 | #define ENOTCONN 9925 | 
 | #endif | 
 |  | 
 | #ifndef ENOTSUP | 
 | #define ENOTSUP 9926 | 
 | #endif | 
 |  | 
 | #ifndef ECANCELED | 
 | #define ECANCELED 9927 | 
 | #endif | 
 |  | 
 | #ifndef EINPROGRESS | 
 | #define EINPROGRESS 9928 | 
 | #endif | 
 |  | 
 | #ifndef EOPNOTSUPP | 
 | #define EOPNOTSUPP 9929 | 
 | #endif | 
 |  | 
 | #ifndef EWOULDBLOCK | 
 | #define EWOULDBLOCK 9930 | 
 | #endif | 
 |  | 
 | #ifndef EOWNERDEAD | 
 | #define EOWNERDEAD  9931 | 
 | #endif | 
 |  | 
 | #ifndef EPROTO | 
 | #define EPROTO 9932 | 
 | #endif | 
 |  | 
 | #ifndef EPROTONOSUPPORT | 
 | #define EPROTONOSUPPORT 9933 | 
 | #endif | 
 |  | 
 | #ifndef ENOTRECOVERABLE | 
 | #define ENOTRECOVERABLE 9934 | 
 | #endif | 
 |  | 
 | #ifndef ETIME | 
 | #define ETIME 9935 | 
 | #endif | 
 |  | 
 | #ifndef ETXTBSY | 
 | #define ETXTBSY 9936 | 
 | #endif | 
 |  | 
 | #ifndef ETIMEDOUT | 
 | #define ETIMEDOUT 9938 | 
 | #endif | 
 |  | 
 | #ifndef ELOOP | 
 | #define ELOOP 9939 | 
 | #endif | 
 |  | 
 | #ifndef EOVERFLOW | 
 | #define EOVERFLOW 9940 | 
 | #endif | 
 |  | 
 | #ifndef EPROTOTYPE | 
 | #define EPROTOTYPE 9941 | 
 | #endif | 
 |  | 
 | #ifndef ENOSYS | 
 | #define ENOSYS 9942 | 
 | #endif | 
 |  | 
 | #ifndef EINVAL | 
 | #define EINVAL 9943 | 
 | #endif | 
 |  | 
 | #ifndef ERANGE | 
 | #define ERANGE 9944 | 
 | #endif | 
 |  | 
 | #ifndef EILSEQ | 
 | #define EILSEQ 9945 | 
 | #endif | 
 |  | 
 | //  Windows Mobile doesn't appear to define these: | 
 |  | 
 | #ifndef E2BIG | 
 | #define E2BIG 9946 | 
 | #endif | 
 |  | 
 | #ifndef EDOM | 
 | #define EDOM 9947 | 
 | #endif | 
 |  | 
 | #ifndef EFAULT | 
 | #define EFAULT 9948 | 
 | #endif | 
 |  | 
 | #ifndef EBADF | 
 | #define EBADF 9949 | 
 | #endif | 
 |  | 
 | #ifndef EPIPE | 
 | #define EPIPE 9950 | 
 | #endif | 
 |  | 
 | #ifndef EXDEV | 
 | #define EXDEV 9951 | 
 | #endif | 
 |  | 
 | #ifndef EBUSY | 
 | #define EBUSY 9952 | 
 | #endif | 
 |  | 
 | #ifndef ENOTEMPTY | 
 | #define ENOTEMPTY 9953 | 
 | #endif | 
 |  | 
 | #ifndef ENOEXEC | 
 | #define ENOEXEC 9954 | 
 | #endif | 
 |  | 
 | #ifndef EEXIST | 
 | #define EEXIST 9955 | 
 | #endif | 
 |  | 
 | #ifndef EFBIG | 
 | #define EFBIG 9956 | 
 | #endif | 
 |  | 
 | #ifndef ENAMETOOLONG | 
 | #define ENAMETOOLONG 9957 | 
 | #endif | 
 |  | 
 | #ifndef ENOTTY | 
 | #define ENOTTY 9958 | 
 | #endif | 
 |  | 
 | #ifndef EINTR | 
 | #define EINTR 9959 | 
 | #endif | 
 |  | 
 | #ifndef ESPIPE | 
 | #define ESPIPE 9960 | 
 | #endif | 
 |  | 
 | #ifndef EIO | 
 | #define EIO 9961 | 
 | #endif | 
 |  | 
 | #ifndef EISDIR | 
 | #define EISDIR 9962 | 
 | #endif | 
 |  | 
 | #ifndef ECHILD | 
 | #define ECHILD 9963 | 
 | #endif | 
 |  | 
 | #ifndef ENOLCK | 
 | #define ENOLCK 9964 | 
 | #endif | 
 |  | 
 | #ifndef ENOSPC | 
 | #define ENOSPC 9965 | 
 | #endif | 
 |  | 
 | #ifndef ENXIO | 
 | #define ENXIO 9966 | 
 | #endif | 
 |  | 
 | #ifndef ENODEV | 
 | #define ENODEV 9967 | 
 | #endif | 
 |  | 
 | #ifndef ENOENT | 
 | #define ENOENT 9968 | 
 | #endif | 
 |  | 
 | #ifndef ESRCH | 
 | #define ESRCH 9969 | 
 | #endif | 
 |  | 
 | #ifndef ENOTDIR | 
 | #define ENOTDIR 9970 | 
 | #endif | 
 |  | 
 | #ifndef ENOMEM | 
 | #define ENOMEM 9971 | 
 | #endif | 
 |  | 
 | #ifndef EPERM | 
 | #define EPERM 9972 | 
 | #endif | 
 |  | 
 | #ifndef EACCES | 
 | #define EACCES 9973 | 
 | #endif | 
 |  | 
 | #ifndef EROFS | 
 | #define EROFS 9974 | 
 | #endif | 
 |  | 
 | #ifndef EDEADLK | 
 | #define EDEADLK 9975 | 
 | #endif | 
 |  | 
 | #ifndef EAGAIN | 
 | #define EAGAIN 9976 | 
 | #endif | 
 |  | 
 | #ifndef ENFILE | 
 | #define ENFILE 9977 | 
 | #endif | 
 |  | 
 | #ifndef EMFILE | 
 | #define EMFILE 9978 | 
 | #endif | 
 |  | 
 | #ifndef EMLINK | 
 | #define EMLINK 9979 | 
 | #endif | 
 |  | 
 | #endif // __cplusplus | 
 |  | 
 | #endif // _LIBCPP_ERRNO_H |