From e8846923cfc005fb5511a8ee36a4e38489f1c73d Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Fri, 20 Mar 2009 20:44:14 +0000 Subject: [PATCH] 2009-03-20 Jeff Johnston * libc/include/sys/errno.h: Protect various non-standard errnos with either __LINUX_ERRNO_EXTENSIONS__ or __CYGWIN__. * libc/include/sys/config.h[__CYGWIN__]: Define __LINUX_ERRNO_EXTENSIONS__. --- newlib/ChangeLog | 7 +++++++ newlib/libc/include/sys/config.h | 1 + newlib/libc/include/sys/errno.h | 35 +++++++++++++++++++++++++++++--- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 8301d69ab..3c616da07 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,10 @@ +2009-03-20 Jeff Johnston + + * libc/include/sys/errno.h: Protect various non-standard errnos + with either __LINUX_ERRNO_EXTENSIONS__ or __CYGWIN__. + * libc/include/sys/config.h[__CYGWIN__]: Define + __LINUX_ERRNO_EXTENSIONS__. + 2009-03-19 Corinna Vinschen * libc/stdlib/mbtowc_r.c (_mbtowc_r): Return EILSEQ in case of an diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h index 3084193f5..33e292735 100644 --- a/newlib/libc/include/sys/config.h +++ b/newlib/libc/include/sys/config.h @@ -178,6 +178,7 @@ #if defined(__CYGWIN__) #include +#define __LINUX_ERRNO_EXTENSIONS__ 1 #endif #if defined(__rtems__) diff --git a/newlib/libc/include/sys/errno.h b/newlib/libc/include/sys/errno.h index 8a820a9ed..36e4e5287 100644 --- a/newlib/libc/include/sys/errno.h +++ b/newlib/libc/include/sys/errno.h @@ -40,7 +40,9 @@ extern __IMPORT int sys_nerr; #define ENOMEM 12 /* Not enough core */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define ENOTBLK 15 /* Block device required */ +#endif #define EBUSY 16 /* Mount device busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ @@ -62,6 +64,7 @@ extern __IMPORT int sys_nerr; #define ERANGE 34 /* Math result not representable */ #define ENOMSG 35 /* No message of desired type */ #define EIDRM 36 /* Identifier removed */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define ECHRNG 37 /* Channel number out of range */ #define EL2NSYNC 38 /* Level 2 not synchronized */ #define EL3HLT 39 /* Level 3 halted */ @@ -70,8 +73,10 @@ extern __IMPORT int sys_nerr; #define EUNATCH 42 /* Protocol driver not attached */ #define ENOCSI 43 /* No CSI structure available */ #define EL2HLT 44 /* Level 2 halted */ +#endif #define EDEADLK 45 /* Deadlock condition */ #define ENOLCK 46 /* No record locks available */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define EBADE 50 /* Invalid exchange */ #define EBADR 51 /* Invalid request descriptor */ #define EXFULL 52 /* Exchange full */ @@ -80,22 +85,30 @@ extern __IMPORT int sys_nerr; #define EBADSLT 55 /* Invalid slot */ #define EDEADLOCK 56 /* File locking deadlock error */ #define EBFONT 57 /* Bad font file fmt */ +#endif #define ENOSTR 60 /* Device not a stream */ #define ENODATA 61 /* No data (for no delay io) */ #define ETIME 62 /* Timer expired */ #define ENOSR 63 /* Out of streams resources */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define ENONET 64 /* Machine is not on the network */ #define ENOPKG 65 /* Package not installed */ #define EREMOTE 66 /* The object is remote */ +#endif #define ENOLINK 67 /* The link has been severed */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define EADV 68 /* Advertise error */ #define ESRMNT 69 /* Srmount error */ #define ECOMM 70 /* Communication error on send */ +#endif #define EPROTO 71 /* Protocol error */ #define EMULTIHOP 74 /* Multihop attempted */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define ELBIN 75 /* Inode is remote (not really error) */ #define EDOTDOT 76 /* Cross mount point (not really error) */ +#endif #define EBADMSG 77 /* Trying to read unreadable message */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define EFTYPE 79 /* Inappropriate file type or format */ #define ENOTUNIQ 80 /* Given log. name not unique */ #define EBADFD 81 /* f.d. invalid for this operation */ @@ -105,56 +118,72 @@ extern __IMPORT int sys_nerr; #define ELIBSCN 85 /* .lib section in a.out corrupted */ #define ELIBMAX 86 /* Attempting to link in too many libs */ #define ELIBEXEC 87 /* Attempting to exec a shared library */ +#endif #define ENOSYS 88 /* Function not implemented */ +#ifdef __CYGWIN__ #define ENMFILE 89 /* No more files */ +#endif #define ENOTEMPTY 90 /* Directory not empty */ #define ENAMETOOLONG 91 /* File or path name too long */ #define ELOOP 92 /* Too many symbolic links */ #define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define EPFNOSUPPORT 96 /* Protocol family not supported */ +#endif #define ECONNRESET 104 /* Connection reset by peer */ #define ENOBUFS 105 /* No buffer space available */ #define EAFNOSUPPORT 106 /* Address family not supported by protocol family */ #define EPROTOTYPE 107 /* Protocol wrong type for socket */ #define ENOTSOCK 108 /* Socket operation on non-socket */ #define ENOPROTOOPT 109 /* Protocol not available */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define ESHUTDOWN 110 /* Can't send after socket shutdown */ +#endif #define ECONNREFUSED 111 /* Connection refused */ #define EADDRINUSE 112 /* Address already in use */ #define ECONNABORTED 113 /* Connection aborted */ #define ENETUNREACH 114 /* Network is unreachable */ #define ENETDOWN 115 /* Network interface is not configured */ #define ETIMEDOUT 116 /* Connection timed out */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define EHOSTDOWN 117 /* Host is down */ +#endif #define EHOSTUNREACH 118 /* Host is unreachable */ #define EINPROGRESS 119 /* Connection already in progress */ #define EALREADY 120 /* Socket already connected */ #define EDESTADDRREQ 121 /* Destination address required */ #define EMSGSIZE 122 /* Message too long */ #define EPROTONOSUPPORT 123 /* Unknown protocol */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define ESOCKTNOSUPPORT 124 /* Socket type not supported */ +#endif #define EADDRNOTAVAIL 125 /* Address not available */ #define ENETRESET 126 #define EISCONN 127 /* Socket is already connected */ #define ENOTCONN 128 /* Socket is not connected */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define ETOOMANYREFS 129 #define EPROCLIM 130 #define EUSERS 131 +#endif #define EDQUOT 132 #define ESTALE 133 #define ENOTSUP 134 /* Not supported */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define ENOMEDIUM 135 /* No medium (in tape drive) */ +#endif +#ifdef __CYGWIN__ #define ENOSHARE 136 /* No such host or network path */ #define ECASECLASH 137 /* Filename exists with different case */ +#endif #define EILSEQ 138 #define EOVERFLOW 139 /* Value too large for defined data type */ #define ECANCELED 140 /* Operation canceled */ #define ENOTRECOVERABLE 141 /* State not recoverable */ #define EOWNERDEAD 142 /* Previous owner died */ +#ifdef __LINUX_ERRNO_EXTENSIONS__ #define ESTRPIPE 143 /* Streams pipe error */ - - -/* From cygwin32. */ +#endif #define EWOULDBLOCK EAGAIN /* Operation would block */ #define __ELASTERROR 2000 /* Users can add values starting here */