diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/CORE/sys/errno2.h')
-rw-r--r-- | Master/tlpkg/tlperl/lib/CORE/sys/errno2.h | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/CORE/sys/errno2.h b/Master/tlpkg/tlperl/lib/CORE/sys/errno2.h new file mode 100644 index 00000000000..3ca85e33ae7 --- /dev/null +++ b/Master/tlpkg/tlperl/lib/CORE/sys/errno2.h @@ -0,0 +1,178 @@ +#ifndef _INC_SYS_ERRNO2 +#define _INC_SYS_ERRNO2 + +/* Too late to include winsock2.h if winsock.h has already been loaded */ +#ifndef _WINSOCKAPI_ +# if defined(UNDER_CE) && UNDER_CE <= 300 + /* winsock2 only for 4.00+ */ +# include <winsock.h> +# else +# include <winsock2.h> +# endif +#endif + +/* Ensure all the Exxx constants required by convert_wsa_error_to_errno() in + * win32/win32sck.c are defined. Many are defined in <errno.h> already (more so + * in VC++ 2010 and above and some MinGW/gcc-4.8 and above, which have an extra + * "POSIX supplement") so, for the sake of compatibility with third-party code + * linked into XS modules, we must be careful not to redefine them; for the + * remainder we define our own values, namely the corresponding WSAExxx values. + * + * These definitions are also used as a supplement to the use of <errno.h> in + * the Errno and POSIX modules, both of which may be used to test the value of + * $!, which may have these values assigned to it (via code in win32/win32sck.c + * and the $! case in Perl_magic_set()). It also provides numerous otherwise + * missing values in the (hard-coded) list of Exxx constants exported by POSIX. + * Finally, three of the non-standard errno.h values (actually all now in the + * POSIX supplement in VC10+ and some MinGW/gcc-4.8+) are used in the perl core. + * + * This list is in the same order as that in convert_wsa_error_to_errno(). A + * handful of WSAExxx constants used by that function have no corresponding Exxx + * constant in any errno.h so there is no point in making up values for them; + * they are just returned unchanged by that function so we do not need to worry + * about them here. + */ + +/* EINTR is a standard errno.h value */ +/* EBADF is a standard errno.h value */ +/* EACCES is a standard errno.h value */ +/* EFAULT is a standard errno.h value */ +/* EINVAL is a standard errno.h value */ +/* EMFILE is a standard errno.h value */ + +#ifndef EWOULDBLOCK /* New in VC10 */ +# define EWOULDBLOCK WSAEWOULDBLOCK +#endif +#ifndef EINPROGRESS /* New in VC10 */ +# define EINPROGRESS WSAEINPROGRESS +#endif +#ifndef EALREADY /* New in VC10 */ +# define EALREADY WSAEALREADY +#endif +#ifndef ENOTSOCK /* New in VC10 and needed in doio.c */ +# define ENOTSOCK WSAENOTSOCK +#endif +#ifndef EDESTADDRREQ /* New in VC10 */ +# define EDESTADDRREQ WSAEDESTADDRREQ +#endif +#ifndef EMSGSIZE /* New in VC10 */ +# define EMSGSIZE WSAEMSGSIZE +#endif +#ifndef EPROTOTYPE /* New in VC10 */ +# define EPROTOTYPE WSAEPROTOTYPE +#endif +#ifndef ENOPROTOOPT /* New in VC10 */ +# define ENOPROTOOPT WSAENOPROTOOPT +#endif +#ifndef EPROTONOSUPPORT /* New in VC10 */ +# define EPROTONOSUPPORT WSAEPROTONOSUPPORT +#endif +#ifndef ESOCKTNOSUPPORT /* Not in errno.h but wanted by POSIX.pm */ +# define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT +#endif +#ifndef EOPNOTSUPP /* New in VC10 */ +# define EOPNOTSUPP WSAEOPNOTSUPP +#endif +#ifndef EPFNOSUPPORT /* Not in errno.h but wanted by POSIX.pm */ +# define EPFNOSUPPORT WSAEPFNOSUPPORT +#endif +#ifndef EAFNOSUPPORT /* New in VC10 and needed in util.c */ +# define EAFNOSUPPORT WSAEAFNOSUPPORT +#endif +#ifndef EADDRINUSE /* New in VC10 */ +# define EADDRINUSE WSAEADDRINUSE +#endif +#ifndef EADDRNOTAVAIL /* New in VC10 */ +# define EADDRNOTAVAIL WSAEADDRNOTAVAIL +#endif +#ifndef ENETDOWN /* New in VC10 */ +# define ENETDOWN WSAENETDOWN +#endif +#ifndef ENETUNREACH /* New in VC10 */ +# define ENETUNREACH WSAENETUNREACH +#endif +#ifndef ENETRESET /* New in VC10 */ +# define ENETRESET WSAENETRESET +#endif +#ifndef ECONNABORTED /* New in VC10 and needed in util.c */ +# define ECONNABORTED WSAECONNABORTED +#endif +#ifndef ECONNRESET /* New in VC10 */ +# define ECONNRESET WSAECONNRESET +#endif +#ifndef ENOBUFS /* New in VC10 */ +# define ENOBUFS WSAENOBUFS +#endif +#ifndef EISCONN /* New in VC10 */ +# define EISCONN WSAEISCONN +#endif +#ifndef ENOTCONN /* New in VC10 */ +# define ENOTCONN WSAENOTCONN +#endif +#ifndef ESHUTDOWN /* Not in errno.h but wanted by POSIX.pm */ +# define ESHUTDOWN WSAESHUTDOWN +#endif +#ifndef ETOOMANYREFS /* Not in errno.h but wanted by POSIX.pm */ +# define ETOOMANYREFS WSAETOOMANYREFS +#endif +#ifndef ETIMEDOUT /* New in VC10 */ +# define ETIMEDOUT WSAETIMEDOUT +#endif +#ifndef ECONNREFUSED /* New in VC10 */ +# define ECONNREFUSED WSAECONNREFUSED +#endif +#ifndef ELOOP /* New in VC10 */ +# define ELOOP WSAELOOP +#endif + +/* ENAMETOOLONG is a standard errno.h value */ + +/* EHOSTDOWN is not in errno.h and despite being wanted by POSIX.pm we cannot + * provide any sane value since there is no WSAEHOSTDOWN */ + +#ifndef EHOSTUNREACH /* New in VC10 */ +# define EHOSTUNREACH WSAEHOSTUNREACH +#endif + +/* ENOTEMPTY is a standard errno.h value */ + +#ifndef EPROCLIM /* Not in errno.h but wanted by POSIX.pm */ +# define EPROCLIM WSAEPROCLIM +#endif +#ifndef EUSERS /* Not in errno.h but wanted by POSIX.pm */ +# define EUSERS WSAEUSERS +#endif +#ifndef EDQUOT /* Not in errno.h but wanted by POSIX.pm */ +# define EDQUOT WSAEDQUOT +#endif +#ifndef ESTALE /* Not in errno.h but wanted by POSIX.pm */ +# define ESTALE WSAESTALE +#endif +#ifndef EREMOTE /* Not in errno.h but wanted by POSIX.pm */ +# define EREMOTE WSAEREMOTE +#endif + +/* EDISCON is not an errno.h value at all */ +/* ENOMORE is not an errno.h value at all */ + +#ifndef ECANCELED /* New in VC10 */ +# ifdef WSAECANCELLED /* New in WinSock2 */ +# define ECANCELED WSAECANCELLED +# endif +#endif + +/* EINVALIDPROCTABLE is not an errno.h value at all */ +/* EINVALIDPROVIDER is not an errno.h value at all */ +/* EPROVIDERFAILEDINIT is not an errno.h value at all */ +/* EREFUSED is not an errno.h value at all */ + +/* Set a flag indicating whether <errno.h> has the POSIX supplement (the first + * constant in which is EADDRINUSE). If so then we won't have just defined it as + * WSAEADDRINUSE above. + */ +#undef ERRNO_HAS_POSIX_SUPPLEMENT +#if EADDRINUSE != WSAEADDRINUSE +# define ERRNO_HAS_POSIX_SUPPLEMENT +#endif + +#endif /* _INC_SYS_ERRNO2 */ |