diff options
author | Guido van Rossum <guido@python.org> | 1997-09-28 05:41:56 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-09-28 05:41:56 (GMT) |
commit | 49f9d8e4051f11b40ca554bce988ce291af3ad8c (patch) | |
tree | bd7ef229228d34c3c2ff527890dc39e7a488f75d /Modules | |
parent | 4518823ad0e7a408ef664dcebe8907ca66b72750 (diff) | |
download | cpython-49f9d8e4051f11b40ca554bce988ce291af3ad8c.zip cpython-49f9d8e4051f11b40ca554bce988ce291af3ad8c.tar.gz cpython-49f9d8e4051f11b40ca554bce988ce291af3ad8c.tar.bz2 |
Changes submitted by Marc-Andre Lemburg to add two tables: errorcode
maps errno numbers to errno names (e.g. EINTR), and errorcode maps
them to message strings. (The latter is redundant because
the new call posix.strerror() now does the same, but alla...)
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/errnomodule.c | 990 |
1 files changed, 622 insertions, 368 deletions
diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c index f23e27f..be36ca6 100644 --- a/Modules/errnomodule.c +++ b/Modules/errnomodule.c @@ -38,534 +38,788 @@ PERFORMANCE OF THIS SOFTWARE. #include <sys/errno.h> #endif +/* Windows socket errors (WSA*): XXX is this the correct path ??? */ +#ifdef MS_WINDOWS +#include <winsock.h> +#endif + /* * Pull in the system error definitions */ static PyMethodDef errno_methods[] = { - {NULL, NULL} + {NULL, NULL} }; -/* - * Convenience routine to export an integer value. - * For simplicity, errors (which are unlikely anyway) are ignored. - */ +/* Helper function doing the dictionary inserting */ static void -insint(d, name, value) +inscode(d, e, c, name, code, comment) PyObject * d; - char * name; - int value; + PyObject * e; + PyObject * c; + char *name; + int code; + char * comment; { - PyObject *v = PyInt_FromLong((long) value); - if (v == NULL) { + PyObject *u; + PyObject *v; + PyObject *w; + +#ifdef HAVE_STRERROR + if (strerror(code) != NULL) + comment = strerror(code); +#endif + + u = PyString_FromString(name); + v = PyInt_FromLong((long) code); + w = PyString_FromString(comment); + + if (!u || !v || !w) { /* Don't bother reporting this error */ PyErr_Clear(); } else { - PyDict_SetItemString(d, name, v); - Py_DECREF(v); + /* insert in modules dict */ + PyDict_SetItem(d, u, v); + /* insert in errorstr dict */ + PyDict_SetItem(e, v, w); + /* insert in errorcode dict */ + PyDict_SetItem(c, v, u); } + Py_XDECREF(u); + Py_XDECREF(v); + Py_XDECREF(w); } void initerrno() { - PyObject *m, *d; + PyObject *m, *d, *ds, *de; m = Py_InitModule("errno", errno_methods); d = PyModule_GetDict(m); + ds = PyDict_New(); + if (ds == NULL || PyDict_SetItemString(d,"errorstr",ds)) + Py_FatalError("can't initialize errno module"); + de = PyDict_New(); + if (de == NULL || PyDict_SetItemString(d,"errorcode",de)) + Py_FatalError("can't initialize errno module"); /* * The names and comments are borrowed from linux/include/errno.h, * which should be pretty all-inclusive */ -#ifdef EPERM - /* Operation not permitted */ - insint(d, "EPERM", EPERM); +#ifdef ENODEV + inscode(d, ds, de, "ENODEV", ENODEV, "No such device"); #endif -#ifdef ENOENT - /* No such file or directory */ - insint(d, "ENOENT", ENOENT); +#ifdef ENOCSI + inscode(d, ds, de, "ENOCSI", ENOCSI, "No CSI structure available"); #endif -#ifdef ESRCH - /* No such process */ - insint(d, "ESRCH", ESRCH); +#ifdef EHOSTUNREACH + inscode(d, ds, de, "EHOSTUNREACH", EHOSTUNREACH, "No route to host"); +#else +#ifdef WSAEHOSTUNREACH + inscode(d, ds, de, "EHOSTUNREACH", WSAEHOSTUNREACH, "No route to host"); +#endif +#endif +#ifdef ENOMSG + inscode(d, ds, de, "ENOMSG", ENOMSG, "No message of desired type"); +#endif +#ifdef EUCLEAN + inscode(d, ds, de, "EUCLEAN", EUCLEAN, "Structure needs cleaning"); +#endif +#ifdef EL2NSYNC + inscode(d, ds, de, "EL2NSYNC", EL2NSYNC, "Level 2 not synchronized"); +#endif +#ifdef EL2HLT + inscode(d, ds, de, "EL2HLT", EL2HLT, "Level 2 halted"); +#endif +#ifdef ENODATA + inscode(d, ds, de, "ENODATA", ENODATA, "No data available"); +#endif +#ifdef ENOTBLK + inscode(d, ds, de, "ENOTBLK", ENOTBLK, "Block device required"); +#endif +#ifdef ENOSYS + inscode(d, ds, de, "ENOSYS", ENOSYS, "Function not implemented"); +#endif +#ifdef EPIPE + inscode(d, ds, de, "EPIPE", EPIPE, "Broken pipe"); +#endif +#ifdef EINVAL + inscode(d, ds, de, "EINVAL", EINVAL, "Invalid argument"); +#else +#ifdef WSAEINVAL + inscode(d, ds, de, "EINVAL", WSAEINVAL, "Invalid argument"); +#endif +#endif +#ifdef EOVERFLOW + inscode(d, ds, de, "EOVERFLOW", EOVERFLOW, "Value too large for defined data type"); +#endif +#ifdef EADV + inscode(d, ds, de, "EADV", EADV, "Advertise error"); #endif #ifdef EINTR - /* Interrupted system call */ - insint(d, "EINTR", EINTR); + inscode(d, ds, de, "EINTR", EINTR, "Interrupted system call"); +#else +#ifdef WSAEINTR + inscode(d, ds, de, "EINTR", WSAEINTR, "Interrupted system call"); #endif -#ifdef EIO - /* I/O error */ - insint(d, "EIO", EIO); #endif -#ifdef ENXIO - /* No such device or address */ - insint(d, "ENXIO", ENXIO); +#ifdef EUSERS + inscode(d, ds, de, "EUSERS", EUSERS, "Too many users"); +#else +#ifdef WSAEUSERS + inscode(d, ds, de, "EUSERS", WSAEUSERS, "Too many users"); #endif -#ifdef E2BIG - /* Arg list too long */ - insint(d, "E2BIG", E2BIG); #endif -#ifdef ENOEXEC - /* Exec format error */ - insint(d, "ENOEXEC", ENOEXEC); +#ifdef ENOTEMPTY + inscode(d, ds, de, "ENOTEMPTY", ENOTEMPTY, "Directory not empty"); +#else +#ifdef WSAENOTEMPTY + inscode(d, ds, de, "ENOTEMPTY", WSAENOTEMPTY, "Directory not empty"); +#endif +#endif +#ifdef ENOBUFS + inscode(d, ds, de, "ENOBUFS", ENOBUFS, "No buffer space available"); +#else +#ifdef WSAENOBUFS + inscode(d, ds, de, "ENOBUFS", WSAENOBUFS, "No buffer space available"); #endif -#ifdef EBADF - /* Bad file number */ - insint(d, "EBADF", EBADF); +#endif +#ifdef EPROTO + inscode(d, ds, de, "EPROTO", EPROTO, "Protocol error"); +#endif +#ifdef EREMOTE + inscode(d, ds, de, "EREMOTE", EREMOTE, "Object is remote"); +#else +#ifdef WSAEREMOTE + inscode(d, ds, de, "EREMOTE", WSAEREMOTE, "Object is remote"); +#endif +#endif +#ifdef ENAVAIL + inscode(d, ds, de, "ENAVAIL", ENAVAIL, "No XENIX semaphores available"); #endif #ifdef ECHILD - /* No child processes */ - insint(d, "ECHILD", ECHILD); + inscode(d, ds, de, "ECHILD", ECHILD, "No child processes"); #endif -#ifdef EAGAIN - /* Try again */ - insint(d, "EAGAIN", EAGAIN); +#ifdef ELOOP + inscode(d, ds, de, "ELOOP", ELOOP, "Too many symbolic links encountered"); +#else +#ifdef WSAELOOP + inscode(d, ds, de, "ELOOP", WSAELOOP, "Too many symbolic links encountered"); #endif -#ifdef ENOMEM - /* Out of memory */ - insint(d, "ENOMEM", ENOMEM); #endif -#ifdef EACCES - /* Permission denied */ - insint(d, "EACCES", EACCES); +#ifdef EXDEV + inscode(d, ds, de, "EXDEV", EXDEV, "Cross-device link"); #endif -#ifdef EFAULT - /* Bad address */ - insint(d, "EFAULT", EFAULT); +#ifdef E2BIG + inscode(d, ds, de, "E2BIG", E2BIG, "Arg list too long"); +#endif +#ifdef ESRCH + inscode(d, ds, de, "ESRCH", ESRCH, "No such process"); +#endif +#ifdef EMSGSIZE + inscode(d, ds, de, "EMSGSIZE", EMSGSIZE, "Message too long"); +#else +#ifdef WSAEMSGSIZE + inscode(d, ds, de, "EMSGSIZE", WSAEMSGSIZE, "Message too long"); +#endif +#endif +#ifdef EAFNOSUPPORT + inscode(d, ds, de, "EAFNOSUPPORT", EAFNOSUPPORT, "Address family not supported by protocol"); +#else +#ifdef WSAEAFNOSUPPORT + inscode(d, ds, de, "EAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol"); +#endif +#endif +#ifdef EBADR + inscode(d, ds, de, "EBADR", EBADR, "Invalid request descriptor"); +#endif +#ifdef EHOSTDOWN + inscode(d, ds, de, "EHOSTDOWN", EHOSTDOWN, "Host is down"); +#else +#ifdef WSAEHOSTDOWN + inscode(d, ds, de, "EHOSTDOWN", WSAEHOSTDOWN, "Host is down"); +#endif +#endif +#ifdef EPFNOSUPPORT + inscode(d, ds, de, "EPFNOSUPPORT", EPFNOSUPPORT, "Protocol family not supported"); +#else +#ifdef WSAEPFNOSUPPORT + inscode(d, ds, de, "EPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported"); +#endif +#endif +#ifdef ENOPROTOOPT + inscode(d, ds, de, "ENOPROTOOPT", ENOPROTOOPT, "Protocol not available"); +#else +#ifdef WSAENOPROTOOPT + inscode(d, ds, de, "ENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available"); #endif -#ifdef ENOTBLK - /* Block device required */ - insint(d, "ENOTBLK", ENOTBLK); #endif #ifdef EBUSY - /* Device or resource busy */ - insint(d, "EBUSY", EBUSY); + inscode(d, ds, de, "EBUSY", EBUSY, "Device or resource busy"); #endif -#ifdef EEXIST - /* File exists */ - insint(d, "EEXIST", EEXIST); +#ifdef EWOULDBLOCK + inscode(d, ds, de, "EWOULDBLOCK", EWOULDBLOCK, "Operation would block"); +#else +#ifdef WSAEWOULDBLOCK + inscode(d, ds, de, "EWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block"); #endif -#ifdef EXDEV - /* Cross-device link */ - insint(d, "EXDEV", EXDEV); #endif -#ifdef ENODEV - /* No such device */ - insint(d, "ENODEV", ENODEV); +#ifdef EBADFD + inscode(d, ds, de, "EBADFD", EBADFD, "File descriptor in bad state"); +#endif +#ifdef EDOTDOT + inscode(d, ds, de, "EDOTDOT", EDOTDOT, "RFS specific error"); +#endif +#ifdef EISCONN + inscode(d, ds, de, "EISCONN", EISCONN, "Transport endpoint is already connected"); +#else +#ifdef WSAEISCONN + inscode(d, ds, de, "EISCONN", WSAEISCONN, "Transport endpoint is already connected"); +#endif +#endif +#ifdef ENOANO + inscode(d, ds, de, "ENOANO", ENOANO, "No anode"); +#endif +#ifdef ESHUTDOWN + inscode(d, ds, de, "ESHUTDOWN", ESHUTDOWN, "Cannot send after transport endpoint shutdown"); +#else +#ifdef WSAESHUTDOWN + inscode(d, ds, de, "ESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown"); +#endif +#endif +#ifdef ECHRNG + inscode(d, ds, de, "ECHRNG", ECHRNG, "Channel number out of range"); +#endif +#ifdef ELIBBAD + inscode(d, ds, de, "ELIBBAD", ELIBBAD, "Accessing a corrupted shared library"); +#endif +#ifdef ENONET + inscode(d, ds, de, "ENONET", ENONET, "Machine is not on the network"); +#endif +#ifdef EBADE + inscode(d, ds, de, "EBADE", EBADE, "Invalid exchange"); +#endif +#ifdef EBADF + inscode(d, ds, de, "EBADF", EBADF, "Bad file number"); +#else +#ifdef WSAEBADF + inscode(d, ds, de, "EBADF", WSAEBADF, "Bad file number"); +#endif +#endif +#ifdef EMULTIHOP + inscode(d, ds, de, "EMULTIHOP", EMULTIHOP, "Multihop attempted"); +#endif +#ifdef EIO + inscode(d, ds, de, "EIO", EIO, "I/O error"); +#endif +#ifdef EUNATCH + inscode(d, ds, de, "EUNATCH", EUNATCH, "Protocol driver not attached"); +#endif +#ifdef EPROTOTYPE + inscode(d, ds, de, "EPROTOTYPE", EPROTOTYPE, "Protocol wrong type for socket"); +#else +#ifdef WSAEPROTOTYPE + inscode(d, ds, de, "EPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket"); +#endif +#endif +#ifdef ENOSPC + inscode(d, ds, de, "ENOSPC", ENOSPC, "No space left on device"); +#endif +#ifdef ENOEXEC + inscode(d, ds, de, "ENOEXEC", ENOEXEC, "Exec format error"); +#endif +#ifdef EALREADY + inscode(d, ds, de, "EALREADY", EALREADY, "Operation already in progress"); +#else +#ifdef WSAEALREADY + inscode(d, ds, de, "EALREADY", WSAEALREADY, "Operation already in progress"); +#endif +#endif +#ifdef ENETDOWN + inscode(d, ds, de, "ENETDOWN", ENETDOWN, "Network is down"); +#else +#ifdef WSAENETDOWN + inscode(d, ds, de, "ENETDOWN", WSAENETDOWN, "Network is down"); +#endif +#endif +#ifdef ENOTNAM + inscode(d, ds, de, "ENOTNAM", ENOTNAM, "Not a XENIX named type file"); +#endif +#ifdef EACCES + inscode(d, ds, de, "EACCES", EACCES, "Permission denied"); +#else +#ifdef WSAEACCES + inscode(d, ds, de, "EACCES", WSAEACCES, "Permission denied"); +#endif +#endif +#ifdef ELNRNG + inscode(d, ds, de, "ELNRNG", ELNRNG, "Link number out of range"); +#endif +#ifdef EILSEQ + inscode(d, ds, de, "EILSEQ", EILSEQ, "Illegal byte sequence"); #endif #ifdef ENOTDIR - /* Not a directory */ - insint(d, "ENOTDIR", ENOTDIR); + inscode(d, ds, de, "ENOTDIR", ENOTDIR, "Not a directory"); +#endif +#ifdef ENOTUNIQ + inscode(d, ds, de, "ENOTUNIQ", ENOTUNIQ, "Name not unique on network"); +#endif +#ifdef EPERM + inscode(d, ds, de, "EPERM", EPERM, "Operation not permitted"); +#endif +#ifdef EDOM + inscode(d, ds, de, "EDOM", EDOM, "Math argument out of domain of func"); +#endif +#ifdef EXFULL + inscode(d, ds, de, "EXFULL", EXFULL, "Exchange full"); +#endif +#ifdef ECONNREFUSED + inscode(d, ds, de, "ECONNREFUSED", ECONNREFUSED, "Connection refused"); +#else +#ifdef WSAECONNREFUSED + inscode(d, ds, de, "ECONNREFUSED", WSAECONNREFUSED, "Connection refused"); +#endif #endif #ifdef EISDIR - /* Is a directory */ - insint(d, "EISDIR", EISDIR); + inscode(d, ds, de, "EISDIR", EISDIR, "Is a directory"); #endif -#ifdef EINVAL - /* Invalid argument */ - insint(d, "EINVAL", EINVAL); +#ifdef EPROTONOSUPPORT + inscode(d, ds, de, "EPROTONOSUPPORT", EPROTONOSUPPORT, "Protocol not supported"); +#else +#ifdef WSAEPROTONOSUPPORT + inscode(d, ds, de, "EPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported"); #endif -#ifdef ENFILE - /* File table overflow */ - insint(d, "ENFILE", ENFILE); #endif -#ifdef EMFILE - /* Too many open files */ - insint(d, "EMFILE", EMFILE); +#ifdef EROFS + inscode(d, ds, de, "EROFS", EROFS, "Read-only file system"); #endif -#ifdef ENOTTY - /* Not a typewriter */ - insint(d, "ENOTTY", ENOTTY); +#ifdef EADDRNOTAVAIL + inscode(d, ds, de, "EADDRNOTAVAIL", EADDRNOTAVAIL, "Cannot assign requested address"); +#else +#ifdef WSAEADDRNOTAVAIL + inscode(d, ds, de, "EADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address"); #endif -#ifdef ETXTBSY - /* Text file busy */ - insint(d, "ETXTBSY", ETXTBSY); #endif -#ifdef EFBIG - /* File too large */ - insint(d, "EFBIG", EFBIG); +#ifdef EIDRM + inscode(d, ds, de, "EIDRM", EIDRM, "Identifier removed"); #endif -#ifdef ENOSPC - /* No space left on device */ - insint(d, "ENOSPC", ENOSPC); +#ifdef ECOMM + inscode(d, ds, de, "ECOMM", ECOMM, "Communication error on send"); +#endif +#ifdef ESRMNT + inscode(d, ds, de, "ESRMNT", ESRMNT, "Srmount error"); +#endif +#ifdef EREMOTEIO + inscode(d, ds, de, "EREMOTEIO", EREMOTEIO, "Remote I/O error"); +#endif +#ifdef EL3RST + inscode(d, ds, de, "EL3RST", EL3RST, "Level 3 reset"); +#endif +#ifdef EBADMSG + inscode(d, ds, de, "EBADMSG", EBADMSG, "Not a data message"); +#endif +#ifdef ENFILE + inscode(d, ds, de, "ENFILE", ENFILE, "File table overflow"); +#endif +#ifdef ELIBMAX + inscode(d, ds, de, "ELIBMAX", ELIBMAX, "Attempting to link in too many shared libraries"); #endif #ifdef ESPIPE - /* Illegal seek */ - insint(d, "ESPIPE", ESPIPE); + inscode(d, ds, de, "ESPIPE", ESPIPE, "Illegal seek"); #endif -#ifdef EROFS - /* Read-only file system */ - insint(d, "EROFS", EROFS); +#ifdef ENOLINK + inscode(d, ds, de, "ENOLINK", ENOLINK, "Link has been severed"); #endif -#ifdef EMLINK - /* Too many links */ - insint(d, "EMLINK", EMLINK); +#ifdef ENETRESET + inscode(d, ds, de, "ENETRESET", ENETRESET, "Network dropped connection because of reset"); +#else +#ifdef WSAENETRESET + inscode(d, ds, de, "ENETRESET", WSAENETRESET, "Network dropped connection because of reset"); #endif -#ifdef EPIPE - /* Broken pipe */ - insint(d, "EPIPE", EPIPE); #endif -#ifdef EDOM - /* Math argument out of domain of func */ - insint(d, "EDOM", EDOM); +#ifdef ETIMEDOUT + inscode(d, ds, de, "ETIMEDOUT", ETIMEDOUT, "Connection timed out"); +#else +#ifdef WSAETIMEDOUT + inscode(d, ds, de, "ETIMEDOUT", WSAETIMEDOUT, "Connection timed out"); #endif -#ifdef ERANGE - /* Math result not representable */ - insint(d, "ERANGE", ERANGE); +#endif +#ifdef ENOENT + inscode(d, ds, de, "ENOENT", ENOENT, "No such file or directory"); +#endif +#ifdef EEXIST + inscode(d, ds, de, "EEXIST", EEXIST, "File exists"); +#endif +#ifdef EDQUOT + inscode(d, ds, de, "EDQUOT", EDQUOT, "Quota exceeded"); +#else +#ifdef WSAEDQUOT + inscode(d, ds, de, "EDQUOT", WSAEDQUOT, "Quota exceeded"); +#endif +#endif +#ifdef ENOSTR + inscode(d, ds, de, "ENOSTR", ENOSTR, "Device not a stream"); +#endif +#ifdef EBADSLT + inscode(d, ds, de, "EBADSLT", EBADSLT, "Invalid slot"); +#endif +#ifdef EBADRQC + inscode(d, ds, de, "EBADRQC", EBADRQC, "Invalid request code"); +#endif +#ifdef ELIBACC + inscode(d, ds, de, "ELIBACC", ELIBACC, "Can not access a needed shared library"); +#endif +#ifdef EFAULT + inscode(d, ds, de, "EFAULT", EFAULT, "Bad address"); +#else +#ifdef WSAEFAULT + inscode(d, ds, de, "EFAULT", WSAEFAULT, "Bad address"); +#endif +#endif +#ifdef EFBIG + inscode(d, ds, de, "EFBIG", EFBIG, "File too large"); #endif #ifdef EDEADLK - /* Resource deadlock would occur */ - insint(d, "EDEADLK", EDEADLK); + inscode(d, ds, de, "EDEADLK", EDEADLK, "Resource deadlock would occur"); +#endif +#ifdef ENOTCONN + inscode(d, ds, de, "ENOTCONN", ENOTCONN, "Transport endpoint is not connected"); +#else +#ifdef WSAENOTCONN + inscode(d, ds, de, "ENOTCONN", WSAENOTCONN, "Transport endpoint is not connected"); +#endif +#endif +#ifdef EDESTADDRREQ + inscode(d, ds, de, "EDESTADDRREQ", EDESTADDRREQ, "Destination address required"); +#else +#ifdef WSAEDESTADDRREQ + inscode(d, ds, de, "EDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required"); #endif -#ifdef ENAMETOOLONG - /* File name too long */ - insint(d, "ENAMETOOLONG", ENAMETOOLONG); +#endif +#ifdef ELIBSCN + inscode(d, ds, de, "ELIBSCN", ELIBSCN, ".lib section in a.out corrupted"); #endif #ifdef ENOLCK - /* No record locks available */ - insint(d, "ENOLCK", ENOLCK); + inscode(d, ds, de, "ENOLCK", ENOLCK, "No record locks available"); #endif -#ifdef ENOSYS - /* Function not implemented */ - insint(d, "ENOSYS", ENOSYS); +#ifdef EISNAM + inscode(d, ds, de, "EISNAM", EISNAM, "Is a named type file"); #endif -#ifdef ENOTEMPTY - /* Directory not empty */ - insint(d, "ENOTEMPTY", ENOTEMPTY); +#ifdef ECONNABORTED + inscode(d, ds, de, "ECONNABORTED", ECONNABORTED, "Software caused connection abort"); +#else +#ifdef WSAECONNABORTED + inscode(d, ds, de, "ECONNABORTED", WSAECONNABORTED, "Software caused connection abort"); #endif -#ifdef ELOOP - /* Too many symbolic links encountered */ - insint(d, "ELOOP", ELOOP); #endif -#ifdef EWOULDBLOCK - /* Operation would block */ - insint(d, "EWOULDBLOCK", EWOULDBLOCK); +#ifdef ENETUNREACH + inscode(d, ds, de, "ENETUNREACH", ENETUNREACH, "Network is unreachable"); +#else +#ifdef WSAENETUNREACH + inscode(d, ds, de, "ENETUNREACH", WSAENETUNREACH, "Network is unreachable"); #endif -#ifdef ENOMSG - /* No message of desired type */ - insint(d, "ENOMSG", ENOMSG); #endif -#ifdef EIDRM - /* Identifier removed */ - insint(d, "EIDRM", EIDRM); +#ifdef ESTALE + inscode(d, ds, de, "ESTALE", ESTALE, "Stale NFS file handle"); +#else +#ifdef WSAESTALE + inscode(d, ds, de, "ESTALE", WSAESTALE, "Stale NFS file handle"); #endif -#ifdef ECHRNG - /* Channel number out of range */ - insint(d, "ECHRNG", ECHRNG); #endif -#ifdef EL2NSYNC - /* Level 2 not synchronized */ - insint(d, "EL2NSYNC", EL2NSYNC); +#ifdef ENOSR + inscode(d, ds, de, "ENOSR", ENOSR, "Out of streams resources"); +#endif +#ifdef ENOMEM + inscode(d, ds, de, "ENOMEM", ENOMEM, "Out of memory"); +#endif +#ifdef ENOTSOCK + inscode(d, ds, de, "ENOTSOCK", ENOTSOCK, "Socket operation on non-socket"); +#else +#ifdef WSAENOTSOCK + inscode(d, ds, de, "ENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket"); +#endif +#endif +#ifdef ESTRPIPE + inscode(d, ds, de, "ESTRPIPE", ESTRPIPE, "Streams pipe error"); +#endif +#ifdef EMLINK + inscode(d, ds, de, "EMLINK", EMLINK, "Too many links"); +#endif +#ifdef ERANGE + inscode(d, ds, de, "ERANGE", ERANGE, "Math result not representable"); +#endif +#ifdef ELIBEXEC + inscode(d, ds, de, "ELIBEXEC", ELIBEXEC, "Cannot exec a shared library directly"); #endif #ifdef EL3HLT - /* Level 3 halted */ - insint(d, "EL3HLT", EL3HLT); + inscode(d, ds, de, "EL3HLT", EL3HLT, "Level 3 halted"); #endif -#ifdef EL3RST - /* Level 3 reset */ - insint(d, "EL3RST", EL3RST); +#ifdef ECONNRESET + inscode(d, ds, de, "ECONNRESET", ECONNRESET, "Connection reset by peer"); +#else +#ifdef WSAECONNRESET + inscode(d, ds, de, "ECONNRESET", WSAECONNRESET, "Connection reset by peer"); #endif -#ifdef ELNRNG - /* Link number out of range */ - insint(d, "ELNRNG", ELNRNG); #endif -#ifdef EUNATCH - /* Protocol driver not attached */ - insint(d, "EUNATCH", EUNATCH); +#ifdef EADDRINUSE + inscode(d, ds, de, "EADDRINUSE", EADDRINUSE, "Address already in use"); +#else +#ifdef WSAEADDRINUSE + inscode(d, ds, de, "EADDRINUSE", WSAEADDRINUSE, "Address already in use"); #endif -#ifdef ENOCSI - /* No CSI structure available */ - insint(d, "ENOCSI", ENOCSI); #endif -#ifdef EL2HLT - /* Level 2 halted */ - insint(d, "EL2HLT", EL2HLT); +#ifdef EOPNOTSUPP + inscode(d, ds, de, "EOPNOTSUPP", EOPNOTSUPP, "Operation not supported on transport endpoint"); +#else +#ifdef WSAEOPNOTSUPP + inscode(d, ds, de, "EOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint"); #endif -#ifdef EBADE - /* Invalid exchange */ - insint(d, "EBADE", EBADE); #endif -#ifdef EBADR - /* Invalid request descriptor */ - insint(d, "EBADR", EBADR); +#ifdef EREMCHG + inscode(d, ds, de, "EREMCHG", EREMCHG, "Remote address changed"); #endif -#ifdef EXFULL - /* Exchange full */ - insint(d, "EXFULL", EXFULL); +#ifdef EAGAIN + inscode(d, ds, de, "EAGAIN", EAGAIN, "Try again"); #endif -#ifdef ENOANO - /* No anode */ - insint(d, "ENOANO", ENOANO); +#ifdef ENAMETOOLONG + inscode(d, ds, de, "ENAMETOOLONG", ENAMETOOLONG, "File name too long"); +#else +#ifdef WSAENAMETOOLONG + inscode(d, ds, de, "ENAMETOOLONG", WSAENAMETOOLONG, "File name too long"); #endif -#ifdef EBADRQC - /* Invalid request code */ - insint(d, "EBADRQC", EBADRQC); #endif -#ifdef EBADSLT - /* Invalid slot */ - insint(d, "EBADSLT", EBADSLT); +#ifdef ENOTTY + inscode(d, ds, de, "ENOTTY", ENOTTY, "Not a typewriter"); +#endif +#ifdef ERESTART + inscode(d, ds, de, "ERESTART", ERESTART, "Interrupted system call should be restarted"); +#endif +#ifdef ESOCKTNOSUPPORT + inscode(d, ds, de, "ESOCKTNOSUPPORT", ESOCKTNOSUPPORT, "Socket type not supported"); +#else +#ifdef WSAESOCKTNOSUPPORT + inscode(d, ds, de, "ESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported"); #endif -#ifdef EDEADLOCK - /* File locking deadlock error */ - insint(d, "EDEADLOCK", EDEADLOCK); +#endif +#ifdef ETIME + inscode(d, ds, de, "ETIME", ETIME, "Timer expired"); #endif #ifdef EBFONT - /* Bad font file format */ - insint(d, "EBFONT", EBFONT); + inscode(d, ds, de, "EBFONT", EBFONT, "Bad font file format"); #endif -#ifdef ENOSTR - /* Device not a stream */ - insint(d, "ENOSTR", ENOSTR); +#ifdef EDEADLOCK + inscode(d, ds, de, "EDEADLOCK", EDEADLOCK, "Error EDEADLOCK"); #endif -#ifdef ENODATA - /* No data available */ - insint(d, "ENODATA", ENODATA); +#ifdef ETOOMANYREFS + inscode(d, ds, de, "ETOOMANYREFS", ETOOMANYREFS, "Too many references: cannot splice"); +#else +#ifdef WSAETOOMANYREFS + inscode(d, ds, de, "ETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice"); #endif -#ifdef ETIME - /* Timer expired */ - insint(d, "ETIME", ETIME); #endif -#ifdef ENOSR - /* Out of streams resources */ - insint(d, "ENOSR", ENOSR); +#ifdef EMFILE + inscode(d, ds, de, "EMFILE", EMFILE, "Too many open files"); +#else +#ifdef WSAEMFILE + inscode(d, ds, de, "EMFILE", WSAEMFILE, "Too many open files"); #endif -#ifdef ENONET - /* Machine is not on the network */ - insint(d, "ENONET", ENONET); +#endif +#ifdef ETXTBSY + inscode(d, ds, de, "ETXTBSY", ETXTBSY, "Text file busy"); +#endif +#ifdef EINPROGRESS + inscode(d, ds, de, "EINPROGRESS", EINPROGRESS, "Operation now in progress"); +#else +#ifdef WSAEINPROGRESS + inscode(d, ds, de, "EINPROGRESS", WSAEINPROGRESS, "Operation now in progress"); +#endif +#endif +#ifdef ENXIO + inscode(d, ds, de, "ENXIO", ENXIO, "No such device or address"); #endif #ifdef ENOPKG - /* Package not installed */ - insint(d, "ENOPKG", ENOPKG); + inscode(d, ds, de, "ENOPKG", ENOPKG, "Package not installed"); #endif -#ifdef EREMOTE - /* Object is remote */ - insint(d, "EREMOTE", EREMOTE); +#ifdef WSASY + inscode(d, ds, de, "WSASY", WSASY, "Error WSASY"); #endif -#ifdef ENOLINK - /* Link has been severed */ - insint(d, "ENOLINK", ENOLINK); +#ifdef WSAEHOSTDOWN + inscode(d, ds, de, "WSAEHOSTDOWN", WSAEHOSTDOWN, "Host is down"); #endif -#ifdef EADV - /* Advertise error */ - insint(d, "EADV", EADV); +#ifdef WSAENETDOWN + inscode(d, ds, de, "WSAENETDOWN", WSAENETDOWN, "Network is down"); #endif -#ifdef ESRMNT - /* Srmount error */ - insint(d, "ESRMNT", ESRMNT); +#ifdef WSAENOTSOCK + inscode(d, ds, de, "WSAENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket"); #endif -#ifdef ECOMM - /* Communication error on send */ - insint(d, "ECOMM", ECOMM); +#ifdef WSAEHOSTUNREACH + inscode(d, ds, de, "WSAEHOSTUNREACH", WSAEHOSTUNREACH, "No route to host"); #endif -#ifdef EPROTO - /* Protocol error */ - insint(d, "EPROTO", EPROTO); +#ifdef WSAELOOP + inscode(d, ds, de, "WSAELOOP", WSAELOOP, "Too many symbolic links encountered"); #endif -#ifdef EMULTIHOP - /* Multihop attempted */ - insint(d, "EMULTIHOP", EMULTIHOP); +#ifdef WSAEMFILE + inscode(d, ds, de, "WSAEMFILE", WSAEMFILE, "Too many open files"); #endif -#ifdef EDOTDOT - /* RFS specific error */ - insint(d, "EDOTDOT", EDOTDOT); +#ifdef WSAESTALE + inscode(d, ds, de, "WSAESTALE", WSAESTALE, "Stale NFS file handle"); #endif -#ifdef EBADMSG - /* Not a data message */ - insint(d, "EBADMSG", EBADMSG); +#ifdef WSAVERNOTSUPPORTED + inscode(d, ds, de, "WSAVERNOTSUPPORTED", WSAVERNOTSUPPORTED, "Error WSAVERNOTSUPPORTED"); #endif -#ifdef EOVERFLOW - /* Value too large for defined data type */ - insint(d, "EOVERFLOW", EOVERFLOW); +#ifdef WSAENETUNREACH + inscode(d, ds, de, "WSAENETUNREACH", WSAENETUNREACH, "Network is unreachable"); #endif -#ifdef ENOTUNIQ - /* Name not unique on network */ - insint(d, "ENOTUNIQ", ENOTUNIQ); +#ifdef WSAEPROCLIM + inscode(d, ds, de, "WSAEPROCLIM", WSAEPROCLIM, "Error WSAEPROCLIM"); #endif -#ifdef EBADFD - /* File descriptor in bad state */ - insint(d, "EBADFD", EBADFD); +#ifdef WSAEFAULT + inscode(d, ds, de, "WSAEFAULT", WSAEFAULT, "Bad address"); #endif -#ifdef EREMCHG - /* Remote address changed */ - insint(d, "EREMCHG", EREMCHG); +#ifdef WSANOTINITIALISED + inscode(d, ds, de, "WSANOTINITIALISED", WSANOTINITIALISED, "Error WSANOTINITIALISED"); #endif -#ifdef ELIBACC - /* Can not access a needed shared library */ - insint(d, "ELIBACC", ELIBACC); +#ifdef WSAEUSERS + inscode(d, ds, de, "WSAEUSERS", WSAEUSERS, "Too many users"); #endif -#ifdef ELIBBAD - /* Accessing a corrupted shared library */ - insint(d, "ELIBBAD", ELIBBAD); +#ifdef WSAMAKEASYNCREPL + inscode(d, ds, de, "WSAMAKEASYNCREPL", WSAMAKEASYNCREPL, "Error WSAMAKEASYNCREPL"); #endif -#ifdef ELIBSCN - /* .lib section in a.out corrupted */ - insint(d, "ELIBSCN", ELIBSCN); +#ifdef WSAENOPROTOOPT + inscode(d, ds, de, "WSAENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available"); #endif -#ifdef ELIBMAX - /* Attempting to link in too many shared libraries */ - insint(d, "ELIBMAX", ELIBMAX); +#ifdef WSAECONNABORTED + inscode(d, ds, de, "WSAECONNABORTED", WSAECONNABORTED, "Software caused connection abort"); #endif -#ifdef ELIBEXEC - /* Cannot exec a shared library directly */ - insint(d, "ELIBEXEC", ELIBEXEC); +#ifdef WSAENAMETOOLONG + inscode(d, ds, de, "WSAENAMETOOLONG", WSAENAMETOOLONG, "File name too long"); #endif -#ifdef EILSEQ - /* Illegal byte sequence */ - insint(d, "EILSEQ", EILSEQ); +#ifdef WSAENOTEMPTY + inscode(d, ds, de, "WSAENOTEMPTY", WSAENOTEMPTY, "Directory not empty"); #endif -#ifdef ERESTART - /* Interrupted system call should be restarted */ - insint(d, "ERESTART", ERESTART); +#ifdef WSAESHUTDOWN + inscode(d, ds, de, "WSAESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown"); #endif -#ifdef ESTRPIPE - /* Streams pipe error */ - insint(d, "ESTRPIPE", ESTRPIPE); +#ifdef WSAEAFNOSUPPORT + inscode(d, ds, de, "WSAEAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol"); #endif -#ifdef EUSERS - /* Too many users */ - insint(d, "EUSERS", EUSERS); +#ifdef WSAETOOMANYREFS + inscode(d, ds, de, "WSAETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice"); #endif -#ifdef ENOTSOCK - /* Socket operation on non-socket */ - insint(d, "ENOTSOCK", ENOTSOCK); +#ifdef WSAEACCES + inscode(d, ds, de, "WSAEACCES", WSAEACCES, "Permission denied"); #endif -#ifdef EDESTADDRREQ - /* Destination address required */ - insint(d, "EDESTADDRREQ", EDESTADDRREQ); +#ifdef WSATR + inscode(d, ds, de, "WSATR", WSATR, "Error WSATR"); #endif -#ifdef EMSGSIZE - /* Message too long */ - insint(d, "EMSGSIZE", EMSGSIZE); +#ifdef WSABASEERR + inscode(d, ds, de, "WSABASEERR", WSABASEERR, "Error WSABASEERR"); #endif -#ifdef EPROTOTYPE - /* Protocol wrong type for socket */ - insint(d, "EPROTOTYPE", EPROTOTYPE); +#ifdef WSADESCRIPTIO + inscode(d, ds, de, "WSADESCRIPTIO", WSADESCRIPTIO, "Error WSADESCRIPTIO"); #endif -#ifdef ENOPROTOOPT - /* Protocol not available */ - insint(d, "ENOPROTOOPT", ENOPROTOOPT); +#ifdef WSAEMSGSIZE + inscode(d, ds, de, "WSAEMSGSIZE", WSAEMSGSIZE, "Message too long"); #endif -#ifdef EPROTONOSUPPORT - /* Protocol not supported */ - insint(d, "EPROTONOSUPPORT", EPROTONOSUPPORT); +#ifdef WSAEBADF + inscode(d, ds, de, "WSAEBADF", WSAEBADF, "Bad file number"); #endif -#ifdef ESOCKTNOSUPPORT - /* Socket type not supported */ - insint(d, "ESOCKTNOSUPPORT", ESOCKTNOSUPPORT); +#ifdef WSAECONNRESET + inscode(d, ds, de, "WSAECONNRESET", WSAECONNRESET, "Connection reset by peer"); #endif -#ifdef EOPNOTSUPP - /* Operation not supported on transport endpoint */ - insint(d, "EOPNOTSUPP", EOPNOTSUPP); +#ifdef WSAGETSELECTERRO + inscode(d, ds, de, "WSAGETSELECTERRO", WSAGETSELECTERRO, "Error WSAGETSELECTERRO"); #endif -#ifdef EPFNOSUPPORT - /* Protocol family not supported */ - insint(d, "EPFNOSUPPORT", EPFNOSUPPORT); +#ifdef WSAETIMEDOUT + inscode(d, ds, de, "WSAETIMEDOUT", WSAETIMEDOUT, "Connection timed out"); #endif -#ifdef EAFNOSUPPORT - /* Address family not supported by protocol */ - insint(d, "EAFNOSUPPORT", EAFNOSUPPORT); +#ifdef WSAENOBUFS + inscode(d, ds, de, "WSAENOBUFS", WSAENOBUFS, "No buffer space available"); #endif -#ifdef EADDRINUSE - /* Address already in use */ - insint(d, "EADDRINUSE", EADDRINUSE); +#ifdef WSAEDISCON + inscode(d, ds, de, "WSAEDISCON", WSAEDISCON, "Error WSAEDISCON"); #endif -#ifdef EADDRNOTAVAIL - /* Cannot assign requested address */ - insint(d, "EADDRNOTAVAIL", EADDRNOTAVAIL); +#ifdef WSAEINTR + inscode(d, ds, de, "WSAEINTR", WSAEINTR, "Interrupted system call"); #endif -#ifdef ENETDOWN - /* Network is down */ - insint(d, "ENETDOWN", ENETDOWN); +#ifdef WSAEPROTOTYPE + inscode(d, ds, de, "WSAEPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket"); #endif -#ifdef ENETUNREACH - /* Network is unreachable */ - insint(d, "ENETUNREACH", ENETUNREACH); +#ifdef WSAHOS + inscode(d, ds, de, "WSAHOS", WSAHOS, "Error WSAHOS"); #endif -#ifdef ENETRESET - /* Network dropped connection because of reset */ - insint(d, "ENETRESET", ENETRESET); +#ifdef WSAEADDRINUSE + inscode(d, ds, de, "WSAEADDRINUSE", WSAEADDRINUSE, "Address already in use"); #endif -#ifdef ECONNABORTED - /* Software caused connection abort */ - insint(d, "ECONNABORTED", ECONNABORTED); +#ifdef WSAEADDRNOTAVAIL + inscode(d, ds, de, "WSAEADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address"); #endif -#ifdef ECONNRESET - /* Connection reset by peer */ - insint(d, "ECONNRESET", ECONNRESET); +#ifdef WSAEALREADY + inscode(d, ds, de, "WSAEALREADY", WSAEALREADY, "Operation already in progress"); #endif -#ifdef ENOBUFS - /* No buffer space available */ - insint(d, "ENOBUFS", ENOBUFS); +#ifdef WSAEPROTONOSUPPORT + inscode(d, ds, de, "WSAEPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported"); #endif -#ifdef EISCONN - /* Transport endpoint is already connected */ - insint(d, "EISCONN", EISCONN); +#ifdef WSASYSNOTREADY + inscode(d, ds, de, "WSASYSNOTREADY", WSASYSNOTREADY, "Error WSASYSNOTREADY"); #endif -#ifdef ENOTCONN - /* Transport endpoint is not connected */ - insint(d, "ENOTCONN", ENOTCONN); +#ifdef WSAEWOULDBLOCK + inscode(d, ds, de, "WSAEWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block"); #endif -#ifdef ESHUTDOWN - /* Cannot send after transport endpoint shutdown */ - insint(d, "ESHUTDOWN", ESHUTDOWN); +#ifdef WSAEPFNOSUPPORT + inscode(d, ds, de, "WSAEPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported"); #endif -#ifdef ETOOMANYREFS - /* Too many references: cannot splice */ - insint(d, "ETOOMANYREFS", ETOOMANYREFS); +#ifdef WSAEOPNOTSUPP + inscode(d, ds, de, "WSAEOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint"); #endif -#ifdef ETIMEDOUT - /* Connection timed out */ - insint(d, "ETIMEDOUT", ETIMEDOUT); +#ifdef WSAEISCONN + inscode(d, ds, de, "WSAEISCONN", WSAEISCONN, "Transport endpoint is already connected"); #endif -#ifdef ECONNREFUSED - /* Connection refused */ - insint(d, "ECONNREFUSED", ECONNREFUSED); +#ifdef WSAEDQUOT + inscode(d, ds, de, "WSAEDQUOT", WSAEDQUOT, "Quota exceeded"); #endif -#ifdef EHOSTDOWN - /* Host is down */ - insint(d, "EHOSTDOWN", EHOSTDOWN); +#ifdef WSAENOTCONN + inscode(d, ds, de, "WSAENOTCONN", WSAENOTCONN, "Transport endpoint is not connected"); #endif -#ifdef EHOSTUNREACH - /* No route to host */ - insint(d, "EHOSTUNREACH", EHOSTUNREACH); +#ifdef WSAEREMOTE + inscode(d, ds, de, "WSAEREMOTE", WSAEREMOTE, "Object is remote"); #endif -#ifdef EALREADY - /* Operation already in progress */ - insint(d, "EALREADY", EALREADY); +#ifdef WSAEINVAL + inscode(d, ds, de, "WSAEINVAL", WSAEINVAL, "Invalid argument"); #endif -#ifdef EINPROGRESS - /* Operation now in progress */ - insint(d, "EINPROGRESS", EINPROGRESS); +#ifdef WSAEINPROGRESS + inscode(d, ds, de, "WSAEINPROGRESS", WSAEINPROGRESS, "Operation now in progress"); #endif -#ifdef ESTALE - /* Stale NFS file handle */ - insint(d, "ESTALE", ESTALE); +#ifdef WSAGETSELECTEVEN + inscode(d, ds, de, "WSAGETSELECTEVEN", WSAGETSELECTEVEN, "Error WSAGETSELECTEVEN"); #endif -#ifdef EUCLEAN - /* Structure needs cleaning */ - insint(d, "EUCLEAN", EUCLEAN); +#ifdef WSAESOCKTNOSUPPORT + inscode(d, ds, de, "WSAESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported"); #endif -#ifdef ENOTNAM - /* Not a XENIX named type file */ - insint(d, "ENOTNAM", ENOTNAM); +#ifdef WSAGETASYNCERRO + inscode(d, ds, de, "WSAGETASYNCERRO", WSAGETASYNCERRO, "Error WSAGETASYNCERRO"); #endif -#ifdef ENAVAIL - /* No XENIX semaphores available */ - insint(d, "ENAVAIL", ENAVAIL); +#ifdef WSAMAKESELECTREPL + inscode(d, ds, de, "WSAMAKESELECTREPL", WSAMAKESELECTREPL, "Error WSAMAKESELECTREPL"); #endif -#ifdef EISNAM - /* Is a named type file */ - insint(d, "EISNAM", EISNAM); +#ifdef WSAGETASYNCBUFLE + inscode(d, ds, de, "WSAGETASYNCBUFLE", WSAGETASYNCBUFLE, "Error WSAGETASYNCBUFLE"); #endif -#ifdef EREMOTEIO - /* Remote I/O error */ - insint(d, "EREMOTEIO", EREMOTEIO); +#ifdef WSAEDESTADDRREQ + inscode(d, ds, de, "WSAEDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required"); #endif -#ifdef EDQUOT - /* Quota exceeded */ - insint(d, "EDQUOT", EDQUOT); +#ifdef WSAECONNREFUSED + inscode(d, ds, de, "WSAECONNREFUSED", WSAECONNREFUSED, "Connection refused"); +#endif +#ifdef WSAENETRESET + inscode(d, ds, de, "WSAENETRESET", WSAENETRESET, "Network dropped connection because of reset"); #endif +#ifdef WSAN + inscode(d, ds, de, "WSAN", WSAN, "Error WSAN"); +#endif + } |