6 /* Mac with GUSI has more errors than those in errno.h */
11 /* Windows socket errors (WSA*): XXX is this the correct path ??? */
17 * Pull in the system error definitions
20 static PyMethodDef errno_methods
[] = {
24 /* Helper function doing the dictionary inserting */
27 _inscode(PyObject
*d
, PyObject
*de
, char *name
, int code
)
29 PyObject
*u
= PyString_FromString(name
);
30 PyObject
*v
= PyInt_FromLong((long) code
);
32 /* Don't bother checking for errors; they'll be caught at the end
33 * of the module initialization function by the caller of
37 /* insert in modules dict */
38 PyDict_SetItem(d
, u
, v
);
39 /* insert in errorcode dict */
40 PyDict_SetItem(de
, v
, u
);
46 static char errno__doc__
[] =
47 "This module makes available standard errno system symbols.\n\
49 The value of each symbol is the corresponding integer value,\n\
50 e.g., on most systems, errno.ENOENT equals the integer 2.\n\
52 The dictionary errno.errorcode maps numeric codes to symbol names,\n\
53 e.g., errno.errorcode[2] could be the string 'ENOENT'.\n\
55 Symbols that are not relevant to the underlying system are not defined.\n\
57 To map error codes to error messages, use the function os.strerror(),\n\
58 e.g. os.strerror(2) could return 'No such file or directory'.";
64 m
= Py_InitModule3("errno", errno_methods
, errno__doc__
);
65 d
= PyModule_GetDict(m
);
67 if (!d
|| !de
|| PyDict_SetItemString(d
, "errorcode", de
) < 0)
70 /* Macro so I don't have to edit each and every line below... */
71 #define inscode(d, ds, de, name, code, comment) _inscode(d, de, name, code)
74 * The names and comments are borrowed from linux/include/errno.h,
75 * which should be pretty all-inclusive
79 inscode(d
, ds
, de
, "ENODEV", ENODEV
, "No such device");
82 inscode(d
, ds
, de
, "ENOCSI", ENOCSI
, "No CSI structure available");
85 inscode(d
, ds
, de
, "EHOSTUNREACH", EHOSTUNREACH
, "No route to host");
87 #ifdef WSAEHOSTUNREACH
88 inscode(d
, ds
, de
, "EHOSTUNREACH", WSAEHOSTUNREACH
, "No route to host");
92 inscode(d
, ds
, de
, "ENOMSG", ENOMSG
, "No message of desired type");
95 inscode(d
, ds
, de
, "EUCLEAN", EUCLEAN
, "Structure needs cleaning");
98 inscode(d
, ds
, de
, "EL2NSYNC", EL2NSYNC
, "Level 2 not synchronized");
101 inscode(d
, ds
, de
, "EL2HLT", EL2HLT
, "Level 2 halted");
104 inscode(d
, ds
, de
, "ENODATA", ENODATA
, "No data available");
107 inscode(d
, ds
, de
, "ENOTBLK", ENOTBLK
, "Block device required");
110 inscode(d
, ds
, de
, "ENOSYS", ENOSYS
, "Function not implemented");
113 inscode(d
, ds
, de
, "EPIPE", EPIPE
, "Broken pipe");
116 inscode(d
, ds
, de
, "EINVAL", EINVAL
, "Invalid argument");
119 inscode(d
, ds
, de
, "EINVAL", WSAEINVAL
, "Invalid argument");
123 inscode(d
, ds
, de
, "EOVERFLOW", EOVERFLOW
, "Value too large for defined data type");
126 inscode(d
, ds
, de
, "EADV", EADV
, "Advertise error");
129 inscode(d
, ds
, de
, "EINTR", EINTR
, "Interrupted system call");
132 inscode(d
, ds
, de
, "EINTR", WSAEINTR
, "Interrupted system call");
136 inscode(d
, ds
, de
, "EUSERS", EUSERS
, "Too many users");
139 inscode(d
, ds
, de
, "EUSERS", WSAEUSERS
, "Too many users");
143 inscode(d
, ds
, de
, "ENOTEMPTY", ENOTEMPTY
, "Directory not empty");
146 inscode(d
, ds
, de
, "ENOTEMPTY", WSAENOTEMPTY
, "Directory not empty");
150 inscode(d
, ds
, de
, "ENOBUFS", ENOBUFS
, "No buffer space available");
153 inscode(d
, ds
, de
, "ENOBUFS", WSAENOBUFS
, "No buffer space available");
157 inscode(d
, ds
, de
, "EPROTO", EPROTO
, "Protocol error");
160 inscode(d
, ds
, de
, "EREMOTE", EREMOTE
, "Object is remote");
163 inscode(d
, ds
, de
, "EREMOTE", WSAEREMOTE
, "Object is remote");
167 inscode(d
, ds
, de
, "ENAVAIL", ENAVAIL
, "No XENIX semaphores available");
170 inscode(d
, ds
, de
, "ECHILD", ECHILD
, "No child processes");
173 inscode(d
, ds
, de
, "ELOOP", ELOOP
, "Too many symbolic links encountered");
176 inscode(d
, ds
, de
, "ELOOP", WSAELOOP
, "Too many symbolic links encountered");
180 inscode(d
, ds
, de
, "EXDEV", EXDEV
, "Cross-device link");
183 inscode(d
, ds
, de
, "E2BIG", E2BIG
, "Arg list too long");
186 inscode(d
, ds
, de
, "ESRCH", ESRCH
, "No such process");
189 inscode(d
, ds
, de
, "EMSGSIZE", EMSGSIZE
, "Message too long");
192 inscode(d
, ds
, de
, "EMSGSIZE", WSAEMSGSIZE
, "Message too long");
196 inscode(d
, ds
, de
, "EAFNOSUPPORT", EAFNOSUPPORT
, "Address family not supported by protocol");
198 #ifdef WSAEAFNOSUPPORT
199 inscode(d
, ds
, de
, "EAFNOSUPPORT", WSAEAFNOSUPPORT
, "Address family not supported by protocol");
203 inscode(d
, ds
, de
, "EBADR", EBADR
, "Invalid request descriptor");
206 inscode(d
, ds
, de
, "EHOSTDOWN", EHOSTDOWN
, "Host is down");
209 inscode(d
, ds
, de
, "EHOSTDOWN", WSAEHOSTDOWN
, "Host is down");
213 inscode(d
, ds
, de
, "EPFNOSUPPORT", EPFNOSUPPORT
, "Protocol family not supported");
215 #ifdef WSAEPFNOSUPPORT
216 inscode(d
, ds
, de
, "EPFNOSUPPORT", WSAEPFNOSUPPORT
, "Protocol family not supported");
220 inscode(d
, ds
, de
, "ENOPROTOOPT", ENOPROTOOPT
, "Protocol not available");
222 #ifdef WSAENOPROTOOPT
223 inscode(d
, ds
, de
, "ENOPROTOOPT", WSAENOPROTOOPT
, "Protocol not available");
227 inscode(d
, ds
, de
, "EBUSY", EBUSY
, "Device or resource busy");
230 inscode(d
, ds
, de
, "EWOULDBLOCK", EWOULDBLOCK
, "Operation would block");
232 #ifdef WSAEWOULDBLOCK
233 inscode(d
, ds
, de
, "EWOULDBLOCK", WSAEWOULDBLOCK
, "Operation would block");
237 inscode(d
, ds
, de
, "EBADFD", EBADFD
, "File descriptor in bad state");
240 inscode(d
, ds
, de
, "EDOTDOT", EDOTDOT
, "RFS specific error");
243 inscode(d
, ds
, de
, "EISCONN", EISCONN
, "Transport endpoint is already connected");
246 inscode(d
, ds
, de
, "EISCONN", WSAEISCONN
, "Transport endpoint is already connected");
250 inscode(d
, ds
, de
, "ENOANO", ENOANO
, "No anode");
253 inscode(d
, ds
, de
, "ESHUTDOWN", ESHUTDOWN
, "Cannot send after transport endpoint shutdown");
256 inscode(d
, ds
, de
, "ESHUTDOWN", WSAESHUTDOWN
, "Cannot send after transport endpoint shutdown");
260 inscode(d
, ds
, de
, "ECHRNG", ECHRNG
, "Channel number out of range");
263 inscode(d
, ds
, de
, "ELIBBAD", ELIBBAD
, "Accessing a corrupted shared library");
266 inscode(d
, ds
, de
, "ENONET", ENONET
, "Machine is not on the network");
269 inscode(d
, ds
, de
, "EBADE", EBADE
, "Invalid exchange");
272 inscode(d
, ds
, de
, "EBADF", EBADF
, "Bad file number");
275 inscode(d
, ds
, de
, "EBADF", WSAEBADF
, "Bad file number");
279 inscode(d
, ds
, de
, "EMULTIHOP", EMULTIHOP
, "Multihop attempted");
282 inscode(d
, ds
, de
, "EIO", EIO
, "I/O error");
285 inscode(d
, ds
, de
, "EUNATCH", EUNATCH
, "Protocol driver not attached");
288 inscode(d
, ds
, de
, "EPROTOTYPE", EPROTOTYPE
, "Protocol wrong type for socket");
291 inscode(d
, ds
, de
, "EPROTOTYPE", WSAEPROTOTYPE
, "Protocol wrong type for socket");
295 inscode(d
, ds
, de
, "ENOSPC", ENOSPC
, "No space left on device");
298 inscode(d
, ds
, de
, "ENOEXEC", ENOEXEC
, "Exec format error");
301 inscode(d
, ds
, de
, "EALREADY", EALREADY
, "Operation already in progress");
304 inscode(d
, ds
, de
, "EALREADY", WSAEALREADY
, "Operation already in progress");
308 inscode(d
, ds
, de
, "ENETDOWN", ENETDOWN
, "Network is down");
311 inscode(d
, ds
, de
, "ENETDOWN", WSAENETDOWN
, "Network is down");
315 inscode(d
, ds
, de
, "ENOTNAM", ENOTNAM
, "Not a XENIX named type file");
318 inscode(d
, ds
, de
, "EACCES", EACCES
, "Permission denied");
321 inscode(d
, ds
, de
, "EACCES", WSAEACCES
, "Permission denied");
325 inscode(d
, ds
, de
, "ELNRNG", ELNRNG
, "Link number out of range");
328 inscode(d
, ds
, de
, "EILSEQ", EILSEQ
, "Illegal byte sequence");
331 inscode(d
, ds
, de
, "ENOTDIR", ENOTDIR
, "Not a directory");
334 inscode(d
, ds
, de
, "ENOTUNIQ", ENOTUNIQ
, "Name not unique on network");
337 inscode(d
, ds
, de
, "EPERM", EPERM
, "Operation not permitted");
340 inscode(d
, ds
, de
, "EDOM", EDOM
, "Math argument out of domain of func");
343 inscode(d
, ds
, de
, "EXFULL", EXFULL
, "Exchange full");
346 inscode(d
, ds
, de
, "ECONNREFUSED", ECONNREFUSED
, "Connection refused");
348 #ifdef WSAECONNREFUSED
349 inscode(d
, ds
, de
, "ECONNREFUSED", WSAECONNREFUSED
, "Connection refused");
353 inscode(d
, ds
, de
, "EISDIR", EISDIR
, "Is a directory");
355 #ifdef EPROTONOSUPPORT
356 inscode(d
, ds
, de
, "EPROTONOSUPPORT", EPROTONOSUPPORT
, "Protocol not supported");
358 #ifdef WSAEPROTONOSUPPORT
359 inscode(d
, ds
, de
, "EPROTONOSUPPORT", WSAEPROTONOSUPPORT
, "Protocol not supported");
363 inscode(d
, ds
, de
, "EROFS", EROFS
, "Read-only file system");
366 inscode(d
, ds
, de
, "EADDRNOTAVAIL", EADDRNOTAVAIL
, "Cannot assign requested address");
368 #ifdef WSAEADDRNOTAVAIL
369 inscode(d
, ds
, de
, "EADDRNOTAVAIL", WSAEADDRNOTAVAIL
, "Cannot assign requested address");
373 inscode(d
, ds
, de
, "EIDRM", EIDRM
, "Identifier removed");
376 inscode(d
, ds
, de
, "ECOMM", ECOMM
, "Communication error on send");
379 inscode(d
, ds
, de
, "ESRMNT", ESRMNT
, "Srmount error");
382 inscode(d
, ds
, de
, "EREMOTEIO", EREMOTEIO
, "Remote I/O error");
385 inscode(d
, ds
, de
, "EL3RST", EL3RST
, "Level 3 reset");
388 inscode(d
, ds
, de
, "EBADMSG", EBADMSG
, "Not a data message");
391 inscode(d
, ds
, de
, "ENFILE", ENFILE
, "File table overflow");
394 inscode(d
, ds
, de
, "ELIBMAX", ELIBMAX
, "Attempting to link in too many shared libraries");
397 inscode(d
, ds
, de
, "ESPIPE", ESPIPE
, "Illegal seek");
400 inscode(d
, ds
, de
, "ENOLINK", ENOLINK
, "Link has been severed");
403 inscode(d
, ds
, de
, "ENETRESET", ENETRESET
, "Network dropped connection because of reset");
406 inscode(d
, ds
, de
, "ENETRESET", WSAENETRESET
, "Network dropped connection because of reset");
410 inscode(d
, ds
, de
, "ETIMEDOUT", ETIMEDOUT
, "Connection timed out");
413 inscode(d
, ds
, de
, "ETIMEDOUT", WSAETIMEDOUT
, "Connection timed out");
417 inscode(d
, ds
, de
, "ENOENT", ENOENT
, "No such file or directory");
420 inscode(d
, ds
, de
, "EEXIST", EEXIST
, "File exists");
423 inscode(d
, ds
, de
, "EDQUOT", EDQUOT
, "Quota exceeded");
426 inscode(d
, ds
, de
, "EDQUOT", WSAEDQUOT
, "Quota exceeded");
430 inscode(d
, ds
, de
, "ENOSTR", ENOSTR
, "Device not a stream");
433 inscode(d
, ds
, de
, "EBADSLT", EBADSLT
, "Invalid slot");
436 inscode(d
, ds
, de
, "EBADRQC", EBADRQC
, "Invalid request code");
439 inscode(d
, ds
, de
, "ELIBACC", ELIBACC
, "Can not access a needed shared library");
442 inscode(d
, ds
, de
, "EFAULT", EFAULT
, "Bad address");
445 inscode(d
, ds
, de
, "EFAULT", WSAEFAULT
, "Bad address");
449 inscode(d
, ds
, de
, "EFBIG", EFBIG
, "File too large");
452 inscode(d
, ds
, de
, "EDEADLK", EDEADLK
, "Resource deadlock would occur");
455 inscode(d
, ds
, de
, "ENOTCONN", ENOTCONN
, "Transport endpoint is not connected");
458 inscode(d
, ds
, de
, "ENOTCONN", WSAENOTCONN
, "Transport endpoint is not connected");
462 inscode(d
, ds
, de
, "EDESTADDRREQ", EDESTADDRREQ
, "Destination address required");
464 #ifdef WSAEDESTADDRREQ
465 inscode(d
, ds
, de
, "EDESTADDRREQ", WSAEDESTADDRREQ
, "Destination address required");
469 inscode(d
, ds
, de
, "ELIBSCN", ELIBSCN
, ".lib section in a.out corrupted");
472 inscode(d
, ds
, de
, "ENOLCK", ENOLCK
, "No record locks available");
475 inscode(d
, ds
, de
, "EISNAM", EISNAM
, "Is a named type file");
478 inscode(d
, ds
, de
, "ECONNABORTED", ECONNABORTED
, "Software caused connection abort");
480 #ifdef WSAECONNABORTED
481 inscode(d
, ds
, de
, "ECONNABORTED", WSAECONNABORTED
, "Software caused connection abort");
485 inscode(d
, ds
, de
, "ENETUNREACH", ENETUNREACH
, "Network is unreachable");
487 #ifdef WSAENETUNREACH
488 inscode(d
, ds
, de
, "ENETUNREACH", WSAENETUNREACH
, "Network is unreachable");
492 inscode(d
, ds
, de
, "ESTALE", ESTALE
, "Stale NFS file handle");
495 inscode(d
, ds
, de
, "ESTALE", WSAESTALE
, "Stale NFS file handle");
499 inscode(d
, ds
, de
, "ENOSR", ENOSR
, "Out of streams resources");
502 inscode(d
, ds
, de
, "ENOMEM", ENOMEM
, "Out of memory");
505 inscode(d
, ds
, de
, "ENOTSOCK", ENOTSOCK
, "Socket operation on non-socket");
508 inscode(d
, ds
, de
, "ENOTSOCK", WSAENOTSOCK
, "Socket operation on non-socket");
512 inscode(d
, ds
, de
, "ESTRPIPE", ESTRPIPE
, "Streams pipe error");
515 inscode(d
, ds
, de
, "EMLINK", EMLINK
, "Too many links");
518 inscode(d
, ds
, de
, "ERANGE", ERANGE
, "Math result not representable");
521 inscode(d
, ds
, de
, "ELIBEXEC", ELIBEXEC
, "Cannot exec a shared library directly");
524 inscode(d
, ds
, de
, "EL3HLT", EL3HLT
, "Level 3 halted");
527 inscode(d
, ds
, de
, "ECONNRESET", ECONNRESET
, "Connection reset by peer");
530 inscode(d
, ds
, de
, "ECONNRESET", WSAECONNRESET
, "Connection reset by peer");
534 inscode(d
, ds
, de
, "EADDRINUSE", EADDRINUSE
, "Address already in use");
537 inscode(d
, ds
, de
, "EADDRINUSE", WSAEADDRINUSE
, "Address already in use");
541 inscode(d
, ds
, de
, "EOPNOTSUPP", EOPNOTSUPP
, "Operation not supported on transport endpoint");
544 inscode(d
, ds
, de
, "EOPNOTSUPP", WSAEOPNOTSUPP
, "Operation not supported on transport endpoint");
548 inscode(d
, ds
, de
, "EREMCHG", EREMCHG
, "Remote address changed");
551 inscode(d
, ds
, de
, "EAGAIN", EAGAIN
, "Try again");
554 inscode(d
, ds
, de
, "ENAMETOOLONG", ENAMETOOLONG
, "File name too long");
556 #ifdef WSAENAMETOOLONG
557 inscode(d
, ds
, de
, "ENAMETOOLONG", WSAENAMETOOLONG
, "File name too long");
561 inscode(d
, ds
, de
, "ENOTTY", ENOTTY
, "Not a typewriter");
564 inscode(d
, ds
, de
, "ERESTART", ERESTART
, "Interrupted system call should be restarted");
566 #ifdef ESOCKTNOSUPPORT
567 inscode(d
, ds
, de
, "ESOCKTNOSUPPORT", ESOCKTNOSUPPORT
, "Socket type not supported");
569 #ifdef WSAESOCKTNOSUPPORT
570 inscode(d
, ds
, de
, "ESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT
, "Socket type not supported");
574 inscode(d
, ds
, de
, "ETIME", ETIME
, "Timer expired");
577 inscode(d
, ds
, de
, "EBFONT", EBFONT
, "Bad font file format");
580 inscode(d
, ds
, de
, "EDEADLOCK", EDEADLOCK
, "Error EDEADLOCK");
583 inscode(d
, ds
, de
, "ETOOMANYREFS", ETOOMANYREFS
, "Too many references: cannot splice");
585 #ifdef WSAETOOMANYREFS
586 inscode(d
, ds
, de
, "ETOOMANYREFS", WSAETOOMANYREFS
, "Too many references: cannot splice");
590 inscode(d
, ds
, de
, "EMFILE", EMFILE
, "Too many open files");
593 inscode(d
, ds
, de
, "EMFILE", WSAEMFILE
, "Too many open files");
597 inscode(d
, ds
, de
, "ETXTBSY", ETXTBSY
, "Text file busy");
600 inscode(d
, ds
, de
, "EINPROGRESS", EINPROGRESS
, "Operation now in progress");
602 #ifdef WSAEINPROGRESS
603 inscode(d
, ds
, de
, "EINPROGRESS", WSAEINPROGRESS
, "Operation now in progress");
607 inscode(d
, ds
, de
, "ENXIO", ENXIO
, "No such device or address");
610 inscode(d
, ds
, de
, "ENOPKG", ENOPKG
, "Package not installed");
613 inscode(d
, ds
, de
, "WSASY", WSASY
, "Error WSASY");
616 inscode(d
, ds
, de
, "WSAEHOSTDOWN", WSAEHOSTDOWN
, "Host is down");
619 inscode(d
, ds
, de
, "WSAENETDOWN", WSAENETDOWN
, "Network is down");
622 inscode(d
, ds
, de
, "WSAENOTSOCK", WSAENOTSOCK
, "Socket operation on non-socket");
624 #ifdef WSAEHOSTUNREACH
625 inscode(d
, ds
, de
, "WSAEHOSTUNREACH", WSAEHOSTUNREACH
, "No route to host");
628 inscode(d
, ds
, de
, "WSAELOOP", WSAELOOP
, "Too many symbolic links encountered");
631 inscode(d
, ds
, de
, "WSAEMFILE", WSAEMFILE
, "Too many open files");
634 inscode(d
, ds
, de
, "WSAESTALE", WSAESTALE
, "Stale NFS file handle");
636 #ifdef WSAVERNOTSUPPORTED
637 inscode(d
, ds
, de
, "WSAVERNOTSUPPORTED", WSAVERNOTSUPPORTED
, "Error WSAVERNOTSUPPORTED");
639 #ifdef WSAENETUNREACH
640 inscode(d
, ds
, de
, "WSAENETUNREACH", WSAENETUNREACH
, "Network is unreachable");
643 inscode(d
, ds
, de
, "WSAEPROCLIM", WSAEPROCLIM
, "Error WSAEPROCLIM");
646 inscode(d
, ds
, de
, "WSAEFAULT", WSAEFAULT
, "Bad address");
648 #ifdef WSANOTINITIALISED
649 inscode(d
, ds
, de
, "WSANOTINITIALISED", WSANOTINITIALISED
, "Error WSANOTINITIALISED");
652 inscode(d
, ds
, de
, "WSAEUSERS", WSAEUSERS
, "Too many users");
654 #ifdef WSAMAKEASYNCREPL
655 inscode(d
, ds
, de
, "WSAMAKEASYNCREPL", WSAMAKEASYNCREPL
, "Error WSAMAKEASYNCREPL");
657 #ifdef WSAENOPROTOOPT
658 inscode(d
, ds
, de
, "WSAENOPROTOOPT", WSAENOPROTOOPT
, "Protocol not available");
660 #ifdef WSAECONNABORTED
661 inscode(d
, ds
, de
, "WSAECONNABORTED", WSAECONNABORTED
, "Software caused connection abort");
663 #ifdef WSAENAMETOOLONG
664 inscode(d
, ds
, de
, "WSAENAMETOOLONG", WSAENAMETOOLONG
, "File name too long");
667 inscode(d
, ds
, de
, "WSAENOTEMPTY", WSAENOTEMPTY
, "Directory not empty");
670 inscode(d
, ds
, de
, "WSAESHUTDOWN", WSAESHUTDOWN
, "Cannot send after transport endpoint shutdown");
672 #ifdef WSAEAFNOSUPPORT
673 inscode(d
, ds
, de
, "WSAEAFNOSUPPORT", WSAEAFNOSUPPORT
, "Address family not supported by protocol");
675 #ifdef WSAETOOMANYREFS
676 inscode(d
, ds
, de
, "WSAETOOMANYREFS", WSAETOOMANYREFS
, "Too many references: cannot splice");
679 inscode(d
, ds
, de
, "WSAEACCES", WSAEACCES
, "Permission denied");
682 inscode(d
, ds
, de
, "WSATR", WSATR
, "Error WSATR");
685 inscode(d
, ds
, de
, "WSABASEERR", WSABASEERR
, "Error WSABASEERR");
688 inscode(d
, ds
, de
, "WSADESCRIPTIO", WSADESCRIPTIO
, "Error WSADESCRIPTIO");
691 inscode(d
, ds
, de
, "WSAEMSGSIZE", WSAEMSGSIZE
, "Message too long");
694 inscode(d
, ds
, de
, "WSAEBADF", WSAEBADF
, "Bad file number");
697 inscode(d
, ds
, de
, "WSAECONNRESET", WSAECONNRESET
, "Connection reset by peer");
699 #ifdef WSAGETSELECTERRO
700 inscode(d
, ds
, de
, "WSAGETSELECTERRO", WSAGETSELECTERRO
, "Error WSAGETSELECTERRO");
703 inscode(d
, ds
, de
, "WSAETIMEDOUT", WSAETIMEDOUT
, "Connection timed out");
706 inscode(d
, ds
, de
, "WSAENOBUFS", WSAENOBUFS
, "No buffer space available");
709 inscode(d
, ds
, de
, "WSAEDISCON", WSAEDISCON
, "Error WSAEDISCON");
712 inscode(d
, ds
, de
, "WSAEINTR", WSAEINTR
, "Interrupted system call");
715 inscode(d
, ds
, de
, "WSAEPROTOTYPE", WSAEPROTOTYPE
, "Protocol wrong type for socket");
718 inscode(d
, ds
, de
, "WSAHOS", WSAHOS
, "Error WSAHOS");
721 inscode(d
, ds
, de
, "WSAEADDRINUSE", WSAEADDRINUSE
, "Address already in use");
723 #ifdef WSAEADDRNOTAVAIL
724 inscode(d
, ds
, de
, "WSAEADDRNOTAVAIL", WSAEADDRNOTAVAIL
, "Cannot assign requested address");
727 inscode(d
, ds
, de
, "WSAEALREADY", WSAEALREADY
, "Operation already in progress");
729 #ifdef WSAEPROTONOSUPPORT
730 inscode(d
, ds
, de
, "WSAEPROTONOSUPPORT", WSAEPROTONOSUPPORT
, "Protocol not supported");
732 #ifdef WSASYSNOTREADY
733 inscode(d
, ds
, de
, "WSASYSNOTREADY", WSASYSNOTREADY
, "Error WSASYSNOTREADY");
735 #ifdef WSAEWOULDBLOCK
736 inscode(d
, ds
, de
, "WSAEWOULDBLOCK", WSAEWOULDBLOCK
, "Operation would block");
738 #ifdef WSAEPFNOSUPPORT
739 inscode(d
, ds
, de
, "WSAEPFNOSUPPORT", WSAEPFNOSUPPORT
, "Protocol family not supported");
742 inscode(d
, ds
, de
, "WSAEOPNOTSUPP", WSAEOPNOTSUPP
, "Operation not supported on transport endpoint");
745 inscode(d
, ds
, de
, "WSAEISCONN", WSAEISCONN
, "Transport endpoint is already connected");
748 inscode(d
, ds
, de
, "WSAEDQUOT", WSAEDQUOT
, "Quota exceeded");
751 inscode(d
, ds
, de
, "WSAENOTCONN", WSAENOTCONN
, "Transport endpoint is not connected");
754 inscode(d
, ds
, de
, "WSAEREMOTE", WSAEREMOTE
, "Object is remote");
757 inscode(d
, ds
, de
, "WSAEINVAL", WSAEINVAL
, "Invalid argument");
759 #ifdef WSAEINPROGRESS
760 inscode(d
, ds
, de
, "WSAEINPROGRESS", WSAEINPROGRESS
, "Operation now in progress");
762 #ifdef WSAGETSELECTEVEN
763 inscode(d
, ds
, de
, "WSAGETSELECTEVEN", WSAGETSELECTEVEN
, "Error WSAGETSELECTEVEN");
765 #ifdef WSAESOCKTNOSUPPORT
766 inscode(d
, ds
, de
, "WSAESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT
, "Socket type not supported");
768 #ifdef WSAGETASYNCERRO
769 inscode(d
, ds
, de
, "WSAGETASYNCERRO", WSAGETASYNCERRO
, "Error WSAGETASYNCERRO");
771 #ifdef WSAMAKESELECTREPL
772 inscode(d
, ds
, de
, "WSAMAKESELECTREPL", WSAMAKESELECTREPL
, "Error WSAMAKESELECTREPL");
774 #ifdef WSAGETASYNCBUFLE
775 inscode(d
, ds
, de
, "WSAGETASYNCBUFLE", WSAGETASYNCBUFLE
, "Error WSAGETASYNCBUFLE");
777 #ifdef WSAEDESTADDRREQ
778 inscode(d
, ds
, de
, "WSAEDESTADDRREQ", WSAEDESTADDRREQ
, "Destination address required");
780 #ifdef WSAECONNREFUSED
781 inscode(d
, ds
, de
, "WSAECONNREFUSED", WSAECONNREFUSED
, "Connection refused");
784 inscode(d
, ds
, de
, "WSAENETRESET", WSAENETRESET
, "Network dropped connection because of reset");
787 inscode(d
, ds
, de
, "WSAN", WSAN
, "Error WSAN");