| // -*- 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 |