// -*- 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/__config>
#else
#  include <__config>
#endif

#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
