ad5598305f
MK_LIBCPLUSPLUS=yes to enable). This is a work-in-progress. It works for me, but is not guaranteed to work for anyone else and may eat your dog. To build C++ using libc++, add -stdlib=libc++ to your CXX and LD flags. Bug reports welcome, bug fixes even more welcome... Approved by: dim (mentor)
394 lines
4.9 KiB
C++
394 lines
4.9 KiB
C++
// -*- C++ -*-
|
|
//===-------------------------- cerrno ------------------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is dual licensed under the MIT and the University of Illinois Open
|
|
// Source Licenses. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef _LIBCPP_CERRNO
|
|
#define _LIBCPP_CERRNO
|
|
|
|
/*
|
|
cerrno synopsis
|
|
|
|
Macros:
|
|
|
|
EDOM
|
|
EILSEQ // C99
|
|
ERANGE
|
|
errno
|
|
|
|
*/
|
|
|
|
#include <__config>
|
|
#include <errno.h>
|
|
|
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE)
|
|
|
|
#ifdef ELAST
|
|
|
|
const int __elast1 = ELAST+1;
|
|
const int __elast2 = ELAST+2;
|
|
|
|
#else
|
|
|
|
const int __elast1 = 104;
|
|
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 // _LIBCPP_CERRNO
|