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