|  | // -*- 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 | 
|  |  | 
|  | */ | 
|  |  | 
|  | #if defined(__cplusplus) && __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) | 
|  | #  include <__cxx03/errno.h> | 
|  | #else | 
|  | #  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   // defined(__cplusplus) && __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) | 
|  |  | 
|  | #endif // _LIBCPP_ERRNO_H |