diff options
-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 + } |