| // -*- 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 |
| |
| #include_next <errno.h> |
| |
| #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 |