1 /***********************************************************
2 Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
7 Permission to use, copy, modify, and distribute this software and its
8 documentation for any purpose and without fee is hereby granted,
9 provided that the above copyright notice appear in all copies and that
10 both that copyright notice and this permission notice appear in
11 supporting documentation, and that the names of Stichting Mathematisch
12 Centrum or CWI or Corporation for National Research Initiatives or
13 CNRI not be used in advertising or publicity pertaining to
14 distribution of the software without specific, written prior
17 While CWI is the initial source for this software, a modified version
18 is made available by the Corporation for National Research Initiatives
19 (CNRI) at the Internet address ftp://ftp.python.org.
21 STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
22 REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
23 MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
24 CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
25 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
26 PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
27 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
28 PERFORMANCE OF THIS SOFTWARE.
30 ******************************************************************/
36 /* Mac with GUSI has more errors than those in errno.h */
38 #include <sys/errno.h>
41 /* Windows socket errors (WSA*): XXX is this the correct path ??? */
47 * Pull in the system error definitions
50 static PyMethodDef errno_methods
[] = {
54 /* Helper function doing the dictionary inserting */
57 _inscode(d
, de
, name
, code
)
66 u
= PyString_FromString(name
);
67 v
= PyInt_FromLong((long) code
);
70 /* Don't bother reporting this error */
74 /* insert in modules dict */
75 PyDict_SetItem(d
, u
, v
);
76 /* insert in errorcode dict */
77 PyDict_SetItem(de
, v
, u
);
83 static char errno__doc__
[] =
84 "This module makes available standard errno system symbols.\n\
86 The value of each symbol is the corresponding integer value,\n\
87 e.g., on most systems, errno.ENOENT equals the integer 2.\n\
89 The dictionary errno.errorcode maps numeric codes to symbol names,\n\
90 e.g., errno.errorcode[2] could be the string 'ENOENT'.\n\
92 Symbols that are not relevant to the underlying system are not defined.\n\
94 To map error codes to error messages, use the function os.strerror(),\n\
95 e.g. os.strerror(2) could return 'No such file or directory'.";
100 PyObject
*m
, *d
, *de
;
101 m
= Py_InitModule3("errno", errno_methods
, errno__doc__
);
102 d
= PyModule_GetDict(m
);
104 if (de
== NULL
|| PyDict_SetItemString(d
, "errorcode", de
))
105 Py_FatalError("can't initialize errno module");
107 /* Macro so I don't have to edit each and every line below... */
108 #define inscode(d, ds, de, name, code, comment) _inscode(d, de, name, code)
111 * The names and comments are borrowed from linux/include/errno.h,
112 * which should be pretty all-inclusive
116 inscode(d
, ds
, de
, "ENODEV", ENODEV
, "No such device");
119 inscode(d
, ds
, de
, "ENOCSI", ENOCSI
, "No CSI structure available");
122 inscode(d
, ds
, de
, "EHOSTUNREACH", EHOSTUNREACH
, "No route to host");
124 #ifdef WSAEHOSTUNREACH
125 inscode(d
, ds
, de
, "EHOSTUNREACH", WSAEHOSTUNREACH
, "No route to host");
129 inscode(d
, ds
, de
, "ENOMSG", ENOMSG
, "No message of desired type");
132 inscode(d
, ds
, de
, "EUCLEAN", EUCLEAN
, "Structure needs cleaning");
135 inscode(d
, ds
, de
, "EL2NSYNC", EL2NSYNC
, "Level 2 not synchronized");
138 inscode(d
, ds
, de
, "EL2HLT", EL2HLT
, "Level 2 halted");
141 inscode(d
, ds
, de
, "ENODATA", ENODATA
, "No data available");
144 inscode(d
, ds
, de
, "ENOTBLK", ENOTBLK
, "Block device required");
147 inscode(d
, ds
, de
, "ENOSYS", ENOSYS
, "Function not implemented");
150 inscode(d
, ds
, de
, "EPIPE", EPIPE
, "Broken pipe");
153 inscode(d
, ds
, de
, "EINVAL", EINVAL
, "Invalid argument");
156 inscode(d
, ds
, de
, "EINVAL", WSAEINVAL
, "Invalid argument");
160 inscode(d
, ds
, de
, "EOVERFLOW", EOVERFLOW
, "Value too large for defined data type");
163 inscode(d
, ds
, de
, "EADV", EADV
, "Advertise error");
166 inscode(d
, ds
, de
, "EINTR", EINTR
, "Interrupted system call");
169 inscode(d
, ds
, de
, "EINTR", WSAEINTR
, "Interrupted system call");
173 inscode(d
, ds
, de
, "EUSERS", EUSERS
, "Too many users");
176 inscode(d
, ds
, de
, "EUSERS", WSAEUSERS
, "Too many users");
180 inscode(d
, ds
, de
, "ENOTEMPTY", ENOTEMPTY
, "Directory not empty");
183 inscode(d
, ds
, de
, "ENOTEMPTY", WSAENOTEMPTY
, "Directory not empty");
187 inscode(d
, ds
, de
, "ENOBUFS", ENOBUFS
, "No buffer space available");
190 inscode(d
, ds
, de
, "ENOBUFS", WSAENOBUFS
, "No buffer space available");
194 inscode(d
, ds
, de
, "EPROTO", EPROTO
, "Protocol error");
197 inscode(d
, ds
, de
, "EREMOTE", EREMOTE
, "Object is remote");
200 inscode(d
, ds
, de
, "EREMOTE", WSAEREMOTE
, "Object is remote");
204 inscode(d
, ds
, de
, "ENAVAIL", ENAVAIL
, "No XENIX semaphores available");
207 inscode(d
, ds
, de
, "ECHILD", ECHILD
, "No child processes");
210 inscode(d
, ds
, de
, "ELOOP", ELOOP
, "Too many symbolic links encountered");
213 inscode(d
, ds
, de
, "ELOOP", WSAELOOP
, "Too many symbolic links encountered");
217 inscode(d
, ds
, de
, "EXDEV", EXDEV
, "Cross-device link");
220 inscode(d
, ds
, de
, "E2BIG", E2BIG
, "Arg list too long");
223 inscode(d
, ds
, de
, "ESRCH", ESRCH
, "No such process");
226 inscode(d
, ds
, de
, "EMSGSIZE", EMSGSIZE
, "Message too long");
229 inscode(d
, ds
, de
, "EMSGSIZE", WSAEMSGSIZE
, "Message too long");
233 inscode(d
, ds
, de
, "EAFNOSUPPORT", EAFNOSUPPORT
, "Address family not supported by protocol");
235 #ifdef WSAEAFNOSUPPORT
236 inscode(d
, ds
, de
, "EAFNOSUPPORT", WSAEAFNOSUPPORT
, "Address family not supported by protocol");
240 inscode(d
, ds
, de
, "EBADR", EBADR
, "Invalid request descriptor");
243 inscode(d
, ds
, de
, "EHOSTDOWN", EHOSTDOWN
, "Host is down");
246 inscode(d
, ds
, de
, "EHOSTDOWN", WSAEHOSTDOWN
, "Host is down");
250 inscode(d
, ds
, de
, "EPFNOSUPPORT", EPFNOSUPPORT
, "Protocol family not supported");
252 #ifdef WSAEPFNOSUPPORT
253 inscode(d
, ds
, de
, "EPFNOSUPPORT", WSAEPFNOSUPPORT
, "Protocol family not supported");
257 inscode(d
, ds
, de
, "ENOPROTOOPT", ENOPROTOOPT
, "Protocol not available");
259 #ifdef WSAENOPROTOOPT
260 inscode(d
, ds
, de
, "ENOPROTOOPT", WSAENOPROTOOPT
, "Protocol not available");
264 inscode(d
, ds
, de
, "EBUSY", EBUSY
, "Device or resource busy");
267 inscode(d
, ds
, de
, "EWOULDBLOCK", EWOULDBLOCK
, "Operation would block");
269 #ifdef WSAEWOULDBLOCK
270 inscode(d
, ds
, de
, "EWOULDBLOCK", WSAEWOULDBLOCK
, "Operation would block");
274 inscode(d
, ds
, de
, "EBADFD", EBADFD
, "File descriptor in bad state");
277 inscode(d
, ds
, de
, "EDOTDOT", EDOTDOT
, "RFS specific error");
280 inscode(d
, ds
, de
, "EISCONN", EISCONN
, "Transport endpoint is already connected");
283 inscode(d
, ds
, de
, "EISCONN", WSAEISCONN
, "Transport endpoint is already connected");
287 inscode(d
, ds
, de
, "ENOANO", ENOANO
, "No anode");
290 inscode(d
, ds
, de
, "ESHUTDOWN", ESHUTDOWN
, "Cannot send after transport endpoint shutdown");
293 inscode(d
, ds
, de
, "ESHUTDOWN", WSAESHUTDOWN
, "Cannot send after transport endpoint shutdown");
297 inscode(d
, ds
, de
, "ECHRNG", ECHRNG
, "Channel number out of range");
300 inscode(d
, ds
, de
, "ELIBBAD", ELIBBAD
, "Accessing a corrupted shared library");
303 inscode(d
, ds
, de
, "ENONET", ENONET
, "Machine is not on the network");
306 inscode(d
, ds
, de
, "EBADE", EBADE
, "Invalid exchange");
309 inscode(d
, ds
, de
, "EBADF", EBADF
, "Bad file number");
312 inscode(d
, ds
, de
, "EBADF", WSAEBADF
, "Bad file number");
316 inscode(d
, ds
, de
, "EMULTIHOP", EMULTIHOP
, "Multihop attempted");
319 inscode(d
, ds
, de
, "EIO", EIO
, "I/O error");
322 inscode(d
, ds
, de
, "EUNATCH", EUNATCH
, "Protocol driver not attached");
325 inscode(d
, ds
, de
, "EPROTOTYPE", EPROTOTYPE
, "Protocol wrong type for socket");
328 inscode(d
, ds
, de
, "EPROTOTYPE", WSAEPROTOTYPE
, "Protocol wrong type for socket");
332 inscode(d
, ds
, de
, "ENOSPC", ENOSPC
, "No space left on device");
335 inscode(d
, ds
, de
, "ENOEXEC", ENOEXEC
, "Exec format error");
338 inscode(d
, ds
, de
, "EALREADY", EALREADY
, "Operation already in progress");
341 inscode(d
, ds
, de
, "EALREADY", WSAEALREADY
, "Operation already in progress");
345 inscode(d
, ds
, de
, "ENETDOWN", ENETDOWN
, "Network is down");
348 inscode(d
, ds
, de
, "ENETDOWN", WSAENETDOWN
, "Network is down");
352 inscode(d
, ds
, de
, "ENOTNAM", ENOTNAM
, "Not a XENIX named type file");
355 inscode(d
, ds
, de
, "EACCES", EACCES
, "Permission denied");
358 inscode(d
, ds
, de
, "EACCES", WSAEACCES
, "Permission denied");
362 inscode(d
, ds
, de
, "ELNRNG", ELNRNG
, "Link number out of range");
365 inscode(d
, ds
, de
, "EILSEQ", EILSEQ
, "Illegal byte sequence");
368 inscode(d
, ds
, de
, "ENOTDIR", ENOTDIR
, "Not a directory");
371 inscode(d
, ds
, de
, "ENOTUNIQ", ENOTUNIQ
, "Name not unique on network");
374 inscode(d
, ds
, de
, "EPERM", EPERM
, "Operation not permitted");
377 inscode(d
, ds
, de
, "EDOM", EDOM
, "Math argument out of domain of func");
380 inscode(d
, ds
, de
, "EXFULL", EXFULL
, "Exchange full");
383 inscode(d
, ds
, de
, "ECONNREFUSED", ECONNREFUSED
, "Connection refused");
385 #ifdef WSAECONNREFUSED
386 inscode(d
, ds
, de
, "ECONNREFUSED", WSAECONNREFUSED
, "Connection refused");
390 inscode(d
, ds
, de
, "EISDIR", EISDIR
, "Is a directory");
392 #ifdef EPROTONOSUPPORT
393 inscode(d
, ds
, de
, "EPROTONOSUPPORT", EPROTONOSUPPORT
, "Protocol not supported");
395 #ifdef WSAEPROTONOSUPPORT
396 inscode(d
, ds
, de
, "EPROTONOSUPPORT", WSAEPROTONOSUPPORT
, "Protocol not supported");
400 inscode(d
, ds
, de
, "EROFS", EROFS
, "Read-only file system");
403 inscode(d
, ds
, de
, "EADDRNOTAVAIL", EADDRNOTAVAIL
, "Cannot assign requested address");
405 #ifdef WSAEADDRNOTAVAIL
406 inscode(d
, ds
, de
, "EADDRNOTAVAIL", WSAEADDRNOTAVAIL
, "Cannot assign requested address");
410 inscode(d
, ds
, de
, "EIDRM", EIDRM
, "Identifier removed");
413 inscode(d
, ds
, de
, "ECOMM", ECOMM
, "Communication error on send");
416 inscode(d
, ds
, de
, "ESRMNT", ESRMNT
, "Srmount error");
419 inscode(d
, ds
, de
, "EREMOTEIO", EREMOTEIO
, "Remote I/O error");
422 inscode(d
, ds
, de
, "EL3RST", EL3RST
, "Level 3 reset");
425 inscode(d
, ds
, de
, "EBADMSG", EBADMSG
, "Not a data message");
428 inscode(d
, ds
, de
, "ENFILE", ENFILE
, "File table overflow");
431 inscode(d
, ds
, de
, "ELIBMAX", ELIBMAX
, "Attempting to link in too many shared libraries");
434 inscode(d
, ds
, de
, "ESPIPE", ESPIPE
, "Illegal seek");
437 inscode(d
, ds
, de
, "ENOLINK", ENOLINK
, "Link has been severed");
440 inscode(d
, ds
, de
, "ENETRESET", ENETRESET
, "Network dropped connection because of reset");
443 inscode(d
, ds
, de
, "ENETRESET", WSAENETRESET
, "Network dropped connection because of reset");
447 inscode(d
, ds
, de
, "ETIMEDOUT", ETIMEDOUT
, "Connection timed out");
450 inscode(d
, ds
, de
, "ETIMEDOUT", WSAETIMEDOUT
, "Connection timed out");
454 inscode(d
, ds
, de
, "ENOENT", ENOENT
, "No such file or directory");
457 inscode(d
, ds
, de
, "EEXIST", EEXIST
, "File exists");
460 inscode(d
, ds
, de
, "EDQUOT", EDQUOT
, "Quota exceeded");
463 inscode(d
, ds
, de
, "EDQUOT", WSAEDQUOT
, "Quota exceeded");
467 inscode(d
, ds
, de
, "ENOSTR", ENOSTR
, "Device not a stream");
470 inscode(d
, ds
, de
, "EBADSLT", EBADSLT
, "Invalid slot");
473 inscode(d
, ds
, de
, "EBADRQC", EBADRQC
, "Invalid request code");
476 inscode(d
, ds
, de
, "ELIBACC", ELIBACC
, "Can not access a needed shared library");
479 inscode(d
, ds
, de
, "EFAULT", EFAULT
, "Bad address");
482 inscode(d
, ds
, de
, "EFAULT", WSAEFAULT
, "Bad address");
486 inscode(d
, ds
, de
, "EFBIG", EFBIG
, "File too large");
489 inscode(d
, ds
, de
, "EDEADLK", EDEADLK
, "Resource deadlock would occur");
492 inscode(d
, ds
, de
, "ENOTCONN", ENOTCONN
, "Transport endpoint is not connected");
495 inscode(d
, ds
, de
, "ENOTCONN", WSAENOTCONN
, "Transport endpoint is not connected");
499 inscode(d
, ds
, de
, "EDESTADDRREQ", EDESTADDRREQ
, "Destination address required");
501 #ifdef WSAEDESTADDRREQ
502 inscode(d
, ds
, de
, "EDESTADDRREQ", WSAEDESTADDRREQ
, "Destination address required");
506 inscode(d
, ds
, de
, "ELIBSCN", ELIBSCN
, ".lib section in a.out corrupted");
509 inscode(d
, ds
, de
, "ENOLCK", ENOLCK
, "No record locks available");
512 inscode(d
, ds
, de
, "EISNAM", EISNAM
, "Is a named type file");
515 inscode(d
, ds
, de
, "ECONNABORTED", ECONNABORTED
, "Software caused connection abort");
517 #ifdef WSAECONNABORTED
518 inscode(d
, ds
, de
, "ECONNABORTED", WSAECONNABORTED
, "Software caused connection abort");
522 inscode(d
, ds
, de
, "ENETUNREACH", ENETUNREACH
, "Network is unreachable");
524 #ifdef WSAENETUNREACH
525 inscode(d
, ds
, de
, "ENETUNREACH", WSAENETUNREACH
, "Network is unreachable");
529 inscode(d
, ds
, de
, "ESTALE", ESTALE
, "Stale NFS file handle");
532 inscode(d
, ds
, de
, "ESTALE", WSAESTALE
, "Stale NFS file handle");
536 inscode(d
, ds
, de
, "ENOSR", ENOSR
, "Out of streams resources");
539 inscode(d
, ds
, de
, "ENOMEM", ENOMEM
, "Out of memory");
542 inscode(d
, ds
, de
, "ENOTSOCK", ENOTSOCK
, "Socket operation on non-socket");
545 inscode(d
, ds
, de
, "ENOTSOCK", WSAENOTSOCK
, "Socket operation on non-socket");
549 inscode(d
, ds
, de
, "ESTRPIPE", ESTRPIPE
, "Streams pipe error");
552 inscode(d
, ds
, de
, "EMLINK", EMLINK
, "Too many links");
555 inscode(d
, ds
, de
, "ERANGE", ERANGE
, "Math result not representable");
558 inscode(d
, ds
, de
, "ELIBEXEC", ELIBEXEC
, "Cannot exec a shared library directly");
561 inscode(d
, ds
, de
, "EL3HLT", EL3HLT
, "Level 3 halted");
564 inscode(d
, ds
, de
, "ECONNRESET", ECONNRESET
, "Connection reset by peer");
567 inscode(d
, ds
, de
, "ECONNRESET", WSAECONNRESET
, "Connection reset by peer");
571 inscode(d
, ds
, de
, "EADDRINUSE", EADDRINUSE
, "Address already in use");
574 inscode(d
, ds
, de
, "EADDRINUSE", WSAEADDRINUSE
, "Address already in use");
578 inscode(d
, ds
, de
, "EOPNOTSUPP", EOPNOTSUPP
, "Operation not supported on transport endpoint");
581 inscode(d
, ds
, de
, "EOPNOTSUPP", WSAEOPNOTSUPP
, "Operation not supported on transport endpoint");
585 inscode(d
, ds
, de
, "EREMCHG", EREMCHG
, "Remote address changed");
588 inscode(d
, ds
, de
, "EAGAIN", EAGAIN
, "Try again");
591 inscode(d
, ds
, de
, "ENAMETOOLONG", ENAMETOOLONG
, "File name too long");
593 #ifdef WSAENAMETOOLONG
594 inscode(d
, ds
, de
, "ENAMETOOLONG", WSAENAMETOOLONG
, "File name too long");
598 inscode(d
, ds
, de
, "ENOTTY", ENOTTY
, "Not a typewriter");
601 inscode(d
, ds
, de
, "ERESTART", ERESTART
, "Interrupted system call should be restarted");
603 #ifdef ESOCKTNOSUPPORT
604 inscode(d
, ds
, de
, "ESOCKTNOSUPPORT", ESOCKTNOSUPPORT
, "Socket type not supported");
606 #ifdef WSAESOCKTNOSUPPORT
607 inscode(d
, ds
, de
, "ESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT
, "Socket type not supported");
611 inscode(d
, ds
, de
, "ETIME", ETIME
, "Timer expired");
614 inscode(d
, ds
, de
, "EBFONT", EBFONT
, "Bad font file format");
617 inscode(d
, ds
, de
, "EDEADLOCK", EDEADLOCK
, "Error EDEADLOCK");
620 inscode(d
, ds
, de
, "ETOOMANYREFS", ETOOMANYREFS
, "Too many references: cannot splice");
622 #ifdef WSAETOOMANYREFS
623 inscode(d
, ds
, de
, "ETOOMANYREFS", WSAETOOMANYREFS
, "Too many references: cannot splice");
627 inscode(d
, ds
, de
, "EMFILE", EMFILE
, "Too many open files");
630 inscode(d
, ds
, de
, "EMFILE", WSAEMFILE
, "Too many open files");
634 inscode(d
, ds
, de
, "ETXTBSY", ETXTBSY
, "Text file busy");
637 inscode(d
, ds
, de
, "EINPROGRESS", EINPROGRESS
, "Operation now in progress");
639 #ifdef WSAEINPROGRESS
640 inscode(d
, ds
, de
, "EINPROGRESS", WSAEINPROGRESS
, "Operation now in progress");
644 inscode(d
, ds
, de
, "ENXIO", ENXIO
, "No such device or address");
647 inscode(d
, ds
, de
, "ENOPKG", ENOPKG
, "Package not installed");
650 inscode(d
, ds
, de
, "WSASY", WSASY
, "Error WSASY");
653 inscode(d
, ds
, de
, "WSAEHOSTDOWN", WSAEHOSTDOWN
, "Host is down");
656 inscode(d
, ds
, de
, "WSAENETDOWN", WSAENETDOWN
, "Network is down");
659 inscode(d
, ds
, de
, "WSAENOTSOCK", WSAENOTSOCK
, "Socket operation on non-socket");
661 #ifdef WSAEHOSTUNREACH
662 inscode(d
, ds
, de
, "WSAEHOSTUNREACH", WSAEHOSTUNREACH
, "No route to host");
665 inscode(d
, ds
, de
, "WSAELOOP", WSAELOOP
, "Too many symbolic links encountered");
668 inscode(d
, ds
, de
, "WSAEMFILE", WSAEMFILE
, "Too many open files");
671 inscode(d
, ds
, de
, "WSAESTALE", WSAESTALE
, "Stale NFS file handle");
673 #ifdef WSAVERNOTSUPPORTED
674 inscode(d
, ds
, de
, "WSAVERNOTSUPPORTED", WSAVERNOTSUPPORTED
, "Error WSAVERNOTSUPPORTED");
676 #ifdef WSAENETUNREACH
677 inscode(d
, ds
, de
, "WSAENETUNREACH", WSAENETUNREACH
, "Network is unreachable");
680 inscode(d
, ds
, de
, "WSAEPROCLIM", WSAEPROCLIM
, "Error WSAEPROCLIM");
683 inscode(d
, ds
, de
, "WSAEFAULT", WSAEFAULT
, "Bad address");
685 #ifdef WSANOTINITIALISED
686 inscode(d
, ds
, de
, "WSANOTINITIALISED", WSANOTINITIALISED
, "Error WSANOTINITIALISED");
689 inscode(d
, ds
, de
, "WSAEUSERS", WSAEUSERS
, "Too many users");
691 #ifdef WSAMAKEASYNCREPL
692 inscode(d
, ds
, de
, "WSAMAKEASYNCREPL", WSAMAKEASYNCREPL
, "Error WSAMAKEASYNCREPL");
694 #ifdef WSAENOPROTOOPT
695 inscode(d
, ds
, de
, "WSAENOPROTOOPT", WSAENOPROTOOPT
, "Protocol not available");
697 #ifdef WSAECONNABORTED
698 inscode(d
, ds
, de
, "WSAECONNABORTED", WSAECONNABORTED
, "Software caused connection abort");
700 #ifdef WSAENAMETOOLONG
701 inscode(d
, ds
, de
, "WSAENAMETOOLONG", WSAENAMETOOLONG
, "File name too long");
704 inscode(d
, ds
, de
, "WSAENOTEMPTY", WSAENOTEMPTY
, "Directory not empty");
707 inscode(d
, ds
, de
, "WSAESHUTDOWN", WSAESHUTDOWN
, "Cannot send after transport endpoint shutdown");
709 #ifdef WSAEAFNOSUPPORT
710 inscode(d
, ds
, de
, "WSAEAFNOSUPPORT", WSAEAFNOSUPPORT
, "Address family not supported by protocol");
712 #ifdef WSAETOOMANYREFS
713 inscode(d
, ds
, de
, "WSAETOOMANYREFS", WSAETOOMANYREFS
, "Too many references: cannot splice");
716 inscode(d
, ds
, de
, "WSAEACCES", WSAEACCES
, "Permission denied");
719 inscode(d
, ds
, de
, "WSATR", WSATR
, "Error WSATR");
722 inscode(d
, ds
, de
, "WSABASEERR", WSABASEERR
, "Error WSABASEERR");
725 inscode(d
, ds
, de
, "WSADESCRIPTIO", WSADESCRIPTIO
, "Error WSADESCRIPTIO");
728 inscode(d
, ds
, de
, "WSAEMSGSIZE", WSAEMSGSIZE
, "Message too long");
731 inscode(d
, ds
, de
, "WSAEBADF", WSAEBADF
, "Bad file number");
734 inscode(d
, ds
, de
, "WSAECONNRESET", WSAECONNRESET
, "Connection reset by peer");
736 #ifdef WSAGETSELECTERRO
737 inscode(d
, ds
, de
, "WSAGETSELECTERRO", WSAGETSELECTERRO
, "Error WSAGETSELECTERRO");
740 inscode(d
, ds
, de
, "WSAETIMEDOUT", WSAETIMEDOUT
, "Connection timed out");
743 inscode(d
, ds
, de
, "WSAENOBUFS", WSAENOBUFS
, "No buffer space available");
746 inscode(d
, ds
, de
, "WSAEDISCON", WSAEDISCON
, "Error WSAEDISCON");
749 inscode(d
, ds
, de
, "WSAEINTR", WSAEINTR
, "Interrupted system call");
752 inscode(d
, ds
, de
, "WSAEPROTOTYPE", WSAEPROTOTYPE
, "Protocol wrong type for socket");
755 inscode(d
, ds
, de
, "WSAHOS", WSAHOS
, "Error WSAHOS");
758 inscode(d
, ds
, de
, "WSAEADDRINUSE", WSAEADDRINUSE
, "Address already in use");
760 #ifdef WSAEADDRNOTAVAIL
761 inscode(d
, ds
, de
, "WSAEADDRNOTAVAIL", WSAEADDRNOTAVAIL
, "Cannot assign requested address");
764 inscode(d
, ds
, de
, "WSAEALREADY", WSAEALREADY
, "Operation already in progress");
766 #ifdef WSAEPROTONOSUPPORT
767 inscode(d
, ds
, de
, "WSAEPROTONOSUPPORT", WSAEPROTONOSUPPORT
, "Protocol not supported");
769 #ifdef WSASYSNOTREADY
770 inscode(d
, ds
, de
, "WSASYSNOTREADY", WSASYSNOTREADY
, "Error WSASYSNOTREADY");
772 #ifdef WSAEWOULDBLOCK
773 inscode(d
, ds
, de
, "WSAEWOULDBLOCK", WSAEWOULDBLOCK
, "Operation would block");
775 #ifdef WSAEPFNOSUPPORT
776 inscode(d
, ds
, de
, "WSAEPFNOSUPPORT", WSAEPFNOSUPPORT
, "Protocol family not supported");
779 inscode(d
, ds
, de
, "WSAEOPNOTSUPP", WSAEOPNOTSUPP
, "Operation not supported on transport endpoint");
782 inscode(d
, ds
, de
, "WSAEISCONN", WSAEISCONN
, "Transport endpoint is already connected");
785 inscode(d
, ds
, de
, "WSAEDQUOT", WSAEDQUOT
, "Quota exceeded");
788 inscode(d
, ds
, de
, "WSAENOTCONN", WSAENOTCONN
, "Transport endpoint is not connected");
791 inscode(d
, ds
, de
, "WSAEREMOTE", WSAEREMOTE
, "Object is remote");
794 inscode(d
, ds
, de
, "WSAEINVAL", WSAEINVAL
, "Invalid argument");
796 #ifdef WSAEINPROGRESS
797 inscode(d
, ds
, de
, "WSAEINPROGRESS", WSAEINPROGRESS
, "Operation now in progress");
799 #ifdef WSAGETSELECTEVEN
800 inscode(d
, ds
, de
, "WSAGETSELECTEVEN", WSAGETSELECTEVEN
, "Error WSAGETSELECTEVEN");
802 #ifdef WSAESOCKTNOSUPPORT
803 inscode(d
, ds
, de
, "WSAESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT
, "Socket type not supported");
805 #ifdef WSAGETASYNCERRO
806 inscode(d
, ds
, de
, "WSAGETASYNCERRO", WSAGETASYNCERRO
, "Error WSAGETASYNCERRO");
808 #ifdef WSAMAKESELECTREPL
809 inscode(d
, ds
, de
, "WSAMAKESELECTREPL", WSAMAKESELECTREPL
, "Error WSAMAKESELECTREPL");
811 #ifdef WSAGETASYNCBUFLE
812 inscode(d
, ds
, de
, "WSAGETASYNCBUFLE", WSAGETASYNCBUFLE
, "Error WSAGETASYNCBUFLE");
814 #ifdef WSAEDESTADDRREQ
815 inscode(d
, ds
, de
, "WSAEDESTADDRREQ", WSAEDESTADDRREQ
, "Destination address required");
817 #ifdef WSAECONNREFUSED
818 inscode(d
, ds
, de
, "WSAECONNREFUSED", WSAECONNREFUSED
, "Connection refused");
821 inscode(d
, ds
, de
, "WSAENETRESET", WSAENETRESET
, "Network dropped connection because of reset");
824 inscode(d
, ds
, de
, "WSAN", WSAN
, "Error WSAN");