errnomodule.c revision 8586991099e4ace18ee94163a96b8ea1bed77ebe
1 2/* Errno module */ 3 4#include "Python.h" 5 6/* Mac with GUSI has more errors than those in errno.h */ 7#ifdef USE_GUSI 8#include <sys/errno.h> 9#endif 10 11/* Windows socket errors (WSA*): XXX is this the correct path ??? */ 12#ifdef MS_WINDOWS 13#include <winsock.h> 14#endif 15 16/* 17 * Pull in the system error definitions 18 */ 19 20static PyMethodDef errno_methods[] = { 21 {NULL, NULL} 22}; 23 24/* Helper function doing the dictionary inserting */ 25 26static void 27_inscode(PyObject *d, PyObject *de, char *name, int code) 28{ 29 PyObject *u = PyString_FromString(name); 30 PyObject *v = PyInt_FromLong((long) code); 31 32 /* Don't bother checking for errors; they'll be caught at the end 33 * of the module initialization function by the caller of 34 * initerrno(). 35 */ 36 if (u && v) { 37 /* insert in modules dict */ 38 PyDict_SetItem(d, u, v); 39 /* insert in errorcode dict */ 40 PyDict_SetItem(de, v, u); 41 } 42 Py_XDECREF(u); 43 Py_XDECREF(v); 44} 45 46static char errno__doc__ [] = 47"This module makes available standard errno system symbols.\n\ 48\n\ 49The value of each symbol is the corresponding integer value,\n\ 50e.g., on most systems, errno.ENOENT equals the integer 2.\n\ 51\n\ 52The dictionary errno.errorcode maps numeric codes to symbol names,\n\ 53e.g., errno.errorcode[2] could be the string 'ENOENT'.\n\ 54\n\ 55Symbols that are not relevant to the underlying system are not defined.\n\ 56\n\ 57To map error codes to error messages, use the function os.strerror(),\n\ 58e.g. os.strerror(2) could return 'No such file or directory'."; 59 60DL_EXPORT(void) 61initerrno(void) 62{ 63 PyObject *m, *d, *de; 64 m = Py_InitModule3("errno", errno_methods, errno__doc__); 65 d = PyModule_GetDict(m); 66 de = PyDict_New(); 67 if (!d || !de || PyDict_SetItemString(d, "errorcode", de) < 0) 68 return; 69 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) 72 73 /* 74 * The names and comments are borrowed from linux/include/errno.h, 75 * which should be pretty all-inclusive 76 */ 77 78#ifdef ENODEV 79 inscode(d, ds, de, "ENODEV", ENODEV, "No such device"); 80#endif 81#ifdef ENOCSI 82 inscode(d, ds, de, "ENOCSI", ENOCSI, "No CSI structure available"); 83#endif 84#ifdef EHOSTUNREACH 85 inscode(d, ds, de, "EHOSTUNREACH", EHOSTUNREACH, "No route to host"); 86#else 87#ifdef WSAEHOSTUNREACH 88 inscode(d, ds, de, "EHOSTUNREACH", WSAEHOSTUNREACH, "No route to host"); 89#endif 90#endif 91#ifdef ENOMSG 92 inscode(d, ds, de, "ENOMSG", ENOMSG, "No message of desired type"); 93#endif 94#ifdef EUCLEAN 95 inscode(d, ds, de, "EUCLEAN", EUCLEAN, "Structure needs cleaning"); 96#endif 97#ifdef EL2NSYNC 98 inscode(d, ds, de, "EL2NSYNC", EL2NSYNC, "Level 2 not synchronized"); 99#endif 100#ifdef EL2HLT 101 inscode(d, ds, de, "EL2HLT", EL2HLT, "Level 2 halted"); 102#endif 103#ifdef ENODATA 104 inscode(d, ds, de, "ENODATA", ENODATA, "No data available"); 105#endif 106#ifdef ENOTBLK 107 inscode(d, ds, de, "ENOTBLK", ENOTBLK, "Block device required"); 108#endif 109#ifdef ENOSYS 110 inscode(d, ds, de, "ENOSYS", ENOSYS, "Function not implemented"); 111#endif 112#ifdef EPIPE 113 inscode(d, ds, de, "EPIPE", EPIPE, "Broken pipe"); 114#endif 115#ifdef EINVAL 116 inscode(d, ds, de, "EINVAL", EINVAL, "Invalid argument"); 117#else 118#ifdef WSAEINVAL 119 inscode(d, ds, de, "EINVAL", WSAEINVAL, "Invalid argument"); 120#endif 121#endif 122#ifdef EOVERFLOW 123 inscode(d, ds, de, "EOVERFLOW", EOVERFLOW, "Value too large for defined data type"); 124#endif 125#ifdef EADV 126 inscode(d, ds, de, "EADV", EADV, "Advertise error"); 127#endif 128#ifdef EINTR 129 inscode(d, ds, de, "EINTR", EINTR, "Interrupted system call"); 130#else 131#ifdef WSAEINTR 132 inscode(d, ds, de, "EINTR", WSAEINTR, "Interrupted system call"); 133#endif 134#endif 135#ifdef EUSERS 136 inscode(d, ds, de, "EUSERS", EUSERS, "Too many users"); 137#else 138#ifdef WSAEUSERS 139 inscode(d, ds, de, "EUSERS", WSAEUSERS, "Too many users"); 140#endif 141#endif 142#ifdef ENOTEMPTY 143 inscode(d, ds, de, "ENOTEMPTY", ENOTEMPTY, "Directory not empty"); 144#else 145#ifdef WSAENOTEMPTY 146 inscode(d, ds, de, "ENOTEMPTY", WSAENOTEMPTY, "Directory not empty"); 147#endif 148#endif 149#ifdef ENOBUFS 150 inscode(d, ds, de, "ENOBUFS", ENOBUFS, "No buffer space available"); 151#else 152#ifdef WSAENOBUFS 153 inscode(d, ds, de, "ENOBUFS", WSAENOBUFS, "No buffer space available"); 154#endif 155#endif 156#ifdef EPROTO 157 inscode(d, ds, de, "EPROTO", EPROTO, "Protocol error"); 158#endif 159#ifdef EREMOTE 160 inscode(d, ds, de, "EREMOTE", EREMOTE, "Object is remote"); 161#else 162#ifdef WSAEREMOTE 163 inscode(d, ds, de, "EREMOTE", WSAEREMOTE, "Object is remote"); 164#endif 165#endif 166#ifdef ENAVAIL 167 inscode(d, ds, de, "ENAVAIL", ENAVAIL, "No XENIX semaphores available"); 168#endif 169#ifdef ECHILD 170 inscode(d, ds, de, "ECHILD", ECHILD, "No child processes"); 171#endif 172#ifdef ELOOP 173 inscode(d, ds, de, "ELOOP", ELOOP, "Too many symbolic links encountered"); 174#else 175#ifdef WSAELOOP 176 inscode(d, ds, de, "ELOOP", WSAELOOP, "Too many symbolic links encountered"); 177#endif 178#endif 179#ifdef EXDEV 180 inscode(d, ds, de, "EXDEV", EXDEV, "Cross-device link"); 181#endif 182#ifdef E2BIG 183 inscode(d, ds, de, "E2BIG", E2BIG, "Arg list too long"); 184#endif 185#ifdef ESRCH 186 inscode(d, ds, de, "ESRCH", ESRCH, "No such process"); 187#endif 188#ifdef EMSGSIZE 189 inscode(d, ds, de, "EMSGSIZE", EMSGSIZE, "Message too long"); 190#else 191#ifdef WSAEMSGSIZE 192 inscode(d, ds, de, "EMSGSIZE", WSAEMSGSIZE, "Message too long"); 193#endif 194#endif 195#ifdef EAFNOSUPPORT 196 inscode(d, ds, de, "EAFNOSUPPORT", EAFNOSUPPORT, "Address family not supported by protocol"); 197#else 198#ifdef WSAEAFNOSUPPORT 199 inscode(d, ds, de, "EAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol"); 200#endif 201#endif 202#ifdef EBADR 203 inscode(d, ds, de, "EBADR", EBADR, "Invalid request descriptor"); 204#endif 205#ifdef EHOSTDOWN 206 inscode(d, ds, de, "EHOSTDOWN", EHOSTDOWN, "Host is down"); 207#else 208#ifdef WSAEHOSTDOWN 209 inscode(d, ds, de, "EHOSTDOWN", WSAEHOSTDOWN, "Host is down"); 210#endif 211#endif 212#ifdef EPFNOSUPPORT 213 inscode(d, ds, de, "EPFNOSUPPORT", EPFNOSUPPORT, "Protocol family not supported"); 214#else 215#ifdef WSAEPFNOSUPPORT 216 inscode(d, ds, de, "EPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported"); 217#endif 218#endif 219#ifdef ENOPROTOOPT 220 inscode(d, ds, de, "ENOPROTOOPT", ENOPROTOOPT, "Protocol not available"); 221#else 222#ifdef WSAENOPROTOOPT 223 inscode(d, ds, de, "ENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available"); 224#endif 225#endif 226#ifdef EBUSY 227 inscode(d, ds, de, "EBUSY", EBUSY, "Device or resource busy"); 228#endif 229#ifdef EWOULDBLOCK 230 inscode(d, ds, de, "EWOULDBLOCK", EWOULDBLOCK, "Operation would block"); 231#else 232#ifdef WSAEWOULDBLOCK 233 inscode(d, ds, de, "EWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block"); 234#endif 235#endif 236#ifdef EBADFD 237 inscode(d, ds, de, "EBADFD", EBADFD, "File descriptor in bad state"); 238#endif 239#ifdef EDOTDOT 240 inscode(d, ds, de, "EDOTDOT", EDOTDOT, "RFS specific error"); 241#endif 242#ifdef EISCONN 243 inscode(d, ds, de, "EISCONN", EISCONN, "Transport endpoint is already connected"); 244#else 245#ifdef WSAEISCONN 246 inscode(d, ds, de, "EISCONN", WSAEISCONN, "Transport endpoint is already connected"); 247#endif 248#endif 249#ifdef ENOANO 250 inscode(d, ds, de, "ENOANO", ENOANO, "No anode"); 251#endif 252#ifdef ESHUTDOWN 253 inscode(d, ds, de, "ESHUTDOWN", ESHUTDOWN, "Cannot send after transport endpoint shutdown"); 254#else 255#ifdef WSAESHUTDOWN 256 inscode(d, ds, de, "ESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown"); 257#endif 258#endif 259#ifdef ECHRNG 260 inscode(d, ds, de, "ECHRNG", ECHRNG, "Channel number out of range"); 261#endif 262#ifdef ELIBBAD 263 inscode(d, ds, de, "ELIBBAD", ELIBBAD, "Accessing a corrupted shared library"); 264#endif 265#ifdef ENONET 266 inscode(d, ds, de, "ENONET", ENONET, "Machine is not on the network"); 267#endif 268#ifdef EBADE 269 inscode(d, ds, de, "EBADE", EBADE, "Invalid exchange"); 270#endif 271#ifdef EBADF 272 inscode(d, ds, de, "EBADF", EBADF, "Bad file number"); 273#else 274#ifdef WSAEBADF 275 inscode(d, ds, de, "EBADF", WSAEBADF, "Bad file number"); 276#endif 277#endif 278#ifdef EMULTIHOP 279 inscode(d, ds, de, "EMULTIHOP", EMULTIHOP, "Multihop attempted"); 280#endif 281#ifdef EIO 282 inscode(d, ds, de, "EIO", EIO, "I/O error"); 283#endif 284#ifdef EUNATCH 285 inscode(d, ds, de, "EUNATCH", EUNATCH, "Protocol driver not attached"); 286#endif 287#ifdef EPROTOTYPE 288 inscode(d, ds, de, "EPROTOTYPE", EPROTOTYPE, "Protocol wrong type for socket"); 289#else 290#ifdef WSAEPROTOTYPE 291 inscode(d, ds, de, "EPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket"); 292#endif 293#endif 294#ifdef ENOSPC 295 inscode(d, ds, de, "ENOSPC", ENOSPC, "No space left on device"); 296#endif 297#ifdef ENOEXEC 298 inscode(d, ds, de, "ENOEXEC", ENOEXEC, "Exec format error"); 299#endif 300#ifdef EALREADY 301 inscode(d, ds, de, "EALREADY", EALREADY, "Operation already in progress"); 302#else 303#ifdef WSAEALREADY 304 inscode(d, ds, de, "EALREADY", WSAEALREADY, "Operation already in progress"); 305#endif 306#endif 307#ifdef ENETDOWN 308 inscode(d, ds, de, "ENETDOWN", ENETDOWN, "Network is down"); 309#else 310#ifdef WSAENETDOWN 311 inscode(d, ds, de, "ENETDOWN", WSAENETDOWN, "Network is down"); 312#endif 313#endif 314#ifdef ENOTNAM 315 inscode(d, ds, de, "ENOTNAM", ENOTNAM, "Not a XENIX named type file"); 316#endif 317#ifdef EACCES 318 inscode(d, ds, de, "EACCES", EACCES, "Permission denied"); 319#else 320#ifdef WSAEACCES 321 inscode(d, ds, de, "EACCES", WSAEACCES, "Permission denied"); 322#endif 323#endif 324#ifdef ELNRNG 325 inscode(d, ds, de, "ELNRNG", ELNRNG, "Link number out of range"); 326#endif 327#ifdef EILSEQ 328 inscode(d, ds, de, "EILSEQ", EILSEQ, "Illegal byte sequence"); 329#endif 330#ifdef ENOTDIR 331 inscode(d, ds, de, "ENOTDIR", ENOTDIR, "Not a directory"); 332#endif 333#ifdef ENOTUNIQ 334 inscode(d, ds, de, "ENOTUNIQ", ENOTUNIQ, "Name not unique on network"); 335#endif 336#ifdef EPERM 337 inscode(d, ds, de, "EPERM", EPERM, "Operation not permitted"); 338#endif 339#ifdef EDOM 340 inscode(d, ds, de, "EDOM", EDOM, "Math argument out of domain of func"); 341#endif 342#ifdef EXFULL 343 inscode(d, ds, de, "EXFULL", EXFULL, "Exchange full"); 344#endif 345#ifdef ECONNREFUSED 346 inscode(d, ds, de, "ECONNREFUSED", ECONNREFUSED, "Connection refused"); 347#else 348#ifdef WSAECONNREFUSED 349 inscode(d, ds, de, "ECONNREFUSED", WSAECONNREFUSED, "Connection refused"); 350#endif 351#endif 352#ifdef EISDIR 353 inscode(d, ds, de, "EISDIR", EISDIR, "Is a directory"); 354#endif 355#ifdef EPROTONOSUPPORT 356 inscode(d, ds, de, "EPROTONOSUPPORT", EPROTONOSUPPORT, "Protocol not supported"); 357#else 358#ifdef WSAEPROTONOSUPPORT 359 inscode(d, ds, de, "EPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported"); 360#endif 361#endif 362#ifdef EROFS 363 inscode(d, ds, de, "EROFS", EROFS, "Read-only file system"); 364#endif 365#ifdef EADDRNOTAVAIL 366 inscode(d, ds, de, "EADDRNOTAVAIL", EADDRNOTAVAIL, "Cannot assign requested address"); 367#else 368#ifdef WSAEADDRNOTAVAIL 369 inscode(d, ds, de, "EADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address"); 370#endif 371#endif 372#ifdef EIDRM 373 inscode(d, ds, de, "EIDRM", EIDRM, "Identifier removed"); 374#endif 375#ifdef ECOMM 376 inscode(d, ds, de, "ECOMM", ECOMM, "Communication error on send"); 377#endif 378#ifdef ESRMNT 379 inscode(d, ds, de, "ESRMNT", ESRMNT, "Srmount error"); 380#endif 381#ifdef EREMOTEIO 382 inscode(d, ds, de, "EREMOTEIO", EREMOTEIO, "Remote I/O error"); 383#endif 384#ifdef EL3RST 385 inscode(d, ds, de, "EL3RST", EL3RST, "Level 3 reset"); 386#endif 387#ifdef EBADMSG 388 inscode(d, ds, de, "EBADMSG", EBADMSG, "Not a data message"); 389#endif 390#ifdef ENFILE 391 inscode(d, ds, de, "ENFILE", ENFILE, "File table overflow"); 392#endif 393#ifdef ELIBMAX 394 inscode(d, ds, de, "ELIBMAX", ELIBMAX, "Attempting to link in too many shared libraries"); 395#endif 396#ifdef ESPIPE 397 inscode(d, ds, de, "ESPIPE", ESPIPE, "Illegal seek"); 398#endif 399#ifdef ENOLINK 400 inscode(d, ds, de, "ENOLINK", ENOLINK, "Link has been severed"); 401#endif 402#ifdef ENETRESET 403 inscode(d, ds, de, "ENETRESET", ENETRESET, "Network dropped connection because of reset"); 404#else 405#ifdef WSAENETRESET 406 inscode(d, ds, de, "ENETRESET", WSAENETRESET, "Network dropped connection because of reset"); 407#endif 408#endif 409#ifdef ETIMEDOUT 410 inscode(d, ds, de, "ETIMEDOUT", ETIMEDOUT, "Connection timed out"); 411#else 412#ifdef WSAETIMEDOUT 413 inscode(d, ds, de, "ETIMEDOUT", WSAETIMEDOUT, "Connection timed out"); 414#endif 415#endif 416#ifdef ENOENT 417 inscode(d, ds, de, "ENOENT", ENOENT, "No such file or directory"); 418#endif 419#ifdef EEXIST 420 inscode(d, ds, de, "EEXIST", EEXIST, "File exists"); 421#endif 422#ifdef EDQUOT 423 inscode(d, ds, de, "EDQUOT", EDQUOT, "Quota exceeded"); 424#else 425#ifdef WSAEDQUOT 426 inscode(d, ds, de, "EDQUOT", WSAEDQUOT, "Quota exceeded"); 427#endif 428#endif 429#ifdef ENOSTR 430 inscode(d, ds, de, "ENOSTR", ENOSTR, "Device not a stream"); 431#endif 432#ifdef EBADSLT 433 inscode(d, ds, de, "EBADSLT", EBADSLT, "Invalid slot"); 434#endif 435#ifdef EBADRQC 436 inscode(d, ds, de, "EBADRQC", EBADRQC, "Invalid request code"); 437#endif 438#ifdef ELIBACC 439 inscode(d, ds, de, "ELIBACC", ELIBACC, "Can not access a needed shared library"); 440#endif 441#ifdef EFAULT 442 inscode(d, ds, de, "EFAULT", EFAULT, "Bad address"); 443#else 444#ifdef WSAEFAULT 445 inscode(d, ds, de, "EFAULT", WSAEFAULT, "Bad address"); 446#endif 447#endif 448#ifdef EFBIG 449 inscode(d, ds, de, "EFBIG", EFBIG, "File too large"); 450#endif 451#ifdef EDEADLK 452 inscode(d, ds, de, "EDEADLK", EDEADLK, "Resource deadlock would occur"); 453#endif 454#ifdef ENOTCONN 455 inscode(d, ds, de, "ENOTCONN", ENOTCONN, "Transport endpoint is not connected"); 456#else 457#ifdef WSAENOTCONN 458 inscode(d, ds, de, "ENOTCONN", WSAENOTCONN, "Transport endpoint is not connected"); 459#endif 460#endif 461#ifdef EDESTADDRREQ 462 inscode(d, ds, de, "EDESTADDRREQ", EDESTADDRREQ, "Destination address required"); 463#else 464#ifdef WSAEDESTADDRREQ 465 inscode(d, ds, de, "EDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required"); 466#endif 467#endif 468#ifdef ELIBSCN 469 inscode(d, ds, de, "ELIBSCN", ELIBSCN, ".lib section in a.out corrupted"); 470#endif 471#ifdef ENOLCK 472 inscode(d, ds, de, "ENOLCK", ENOLCK, "No record locks available"); 473#endif 474#ifdef EISNAM 475 inscode(d, ds, de, "EISNAM", EISNAM, "Is a named type file"); 476#endif 477#ifdef ECONNABORTED 478 inscode(d, ds, de, "ECONNABORTED", ECONNABORTED, "Software caused connection abort"); 479#else 480#ifdef WSAECONNABORTED 481 inscode(d, ds, de, "ECONNABORTED", WSAECONNABORTED, "Software caused connection abort"); 482#endif 483#endif 484#ifdef ENETUNREACH 485 inscode(d, ds, de, "ENETUNREACH", ENETUNREACH, "Network is unreachable"); 486#else 487#ifdef WSAENETUNREACH 488 inscode(d, ds, de, "ENETUNREACH", WSAENETUNREACH, "Network is unreachable"); 489#endif 490#endif 491#ifdef ESTALE 492 inscode(d, ds, de, "ESTALE", ESTALE, "Stale NFS file handle"); 493#else 494#ifdef WSAESTALE 495 inscode(d, ds, de, "ESTALE", WSAESTALE, "Stale NFS file handle"); 496#endif 497#endif 498#ifdef ENOSR 499 inscode(d, ds, de, "ENOSR", ENOSR, "Out of streams resources"); 500#endif 501#ifdef ENOMEM 502 inscode(d, ds, de, "ENOMEM", ENOMEM, "Out of memory"); 503#endif 504#ifdef ENOTSOCK 505 inscode(d, ds, de, "ENOTSOCK", ENOTSOCK, "Socket operation on non-socket"); 506#else 507#ifdef WSAENOTSOCK 508 inscode(d, ds, de, "ENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket"); 509#endif 510#endif 511#ifdef ESTRPIPE 512 inscode(d, ds, de, "ESTRPIPE", ESTRPIPE, "Streams pipe error"); 513#endif 514#ifdef EMLINK 515 inscode(d, ds, de, "EMLINK", EMLINK, "Too many links"); 516#endif 517#ifdef ERANGE 518 inscode(d, ds, de, "ERANGE", ERANGE, "Math result not representable"); 519#endif 520#ifdef ELIBEXEC 521 inscode(d, ds, de, "ELIBEXEC", ELIBEXEC, "Cannot exec a shared library directly"); 522#endif 523#ifdef EL3HLT 524 inscode(d, ds, de, "EL3HLT", EL3HLT, "Level 3 halted"); 525#endif 526#ifdef ECONNRESET 527 inscode(d, ds, de, "ECONNRESET", ECONNRESET, "Connection reset by peer"); 528#else 529#ifdef WSAECONNRESET 530 inscode(d, ds, de, "ECONNRESET", WSAECONNRESET, "Connection reset by peer"); 531#endif 532#endif 533#ifdef EADDRINUSE 534 inscode(d, ds, de, "EADDRINUSE", EADDRINUSE, "Address already in use"); 535#else 536#ifdef WSAEADDRINUSE 537 inscode(d, ds, de, "EADDRINUSE", WSAEADDRINUSE, "Address already in use"); 538#endif 539#endif 540#ifdef EOPNOTSUPP 541 inscode(d, ds, de, "EOPNOTSUPP", EOPNOTSUPP, "Operation not supported on transport endpoint"); 542#else 543#ifdef WSAEOPNOTSUPP 544 inscode(d, ds, de, "EOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint"); 545#endif 546#endif 547#ifdef EREMCHG 548 inscode(d, ds, de, "EREMCHG", EREMCHG, "Remote address changed"); 549#endif 550#ifdef EAGAIN 551 inscode(d, ds, de, "EAGAIN", EAGAIN, "Try again"); 552#endif 553#ifdef ENAMETOOLONG 554 inscode(d, ds, de, "ENAMETOOLONG", ENAMETOOLONG, "File name too long"); 555#else 556#ifdef WSAENAMETOOLONG 557 inscode(d, ds, de, "ENAMETOOLONG", WSAENAMETOOLONG, "File name too long"); 558#endif 559#endif 560#ifdef ENOTTY 561 inscode(d, ds, de, "ENOTTY", ENOTTY, "Not a typewriter"); 562#endif 563#ifdef ERESTART 564 inscode(d, ds, de, "ERESTART", ERESTART, "Interrupted system call should be restarted"); 565#endif 566#ifdef ESOCKTNOSUPPORT 567 inscode(d, ds, de, "ESOCKTNOSUPPORT", ESOCKTNOSUPPORT, "Socket type not supported"); 568#else 569#ifdef WSAESOCKTNOSUPPORT 570 inscode(d, ds, de, "ESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported"); 571#endif 572#endif 573#ifdef ETIME 574 inscode(d, ds, de, "ETIME", ETIME, "Timer expired"); 575#endif 576#ifdef EBFONT 577 inscode(d, ds, de, "EBFONT", EBFONT, "Bad font file format"); 578#endif 579#ifdef EDEADLOCK 580 inscode(d, ds, de, "EDEADLOCK", EDEADLOCK, "Error EDEADLOCK"); 581#endif 582#ifdef ETOOMANYREFS 583 inscode(d, ds, de, "ETOOMANYREFS", ETOOMANYREFS, "Too many references: cannot splice"); 584#else 585#ifdef WSAETOOMANYREFS 586 inscode(d, ds, de, "ETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice"); 587#endif 588#endif 589#ifdef EMFILE 590 inscode(d, ds, de, "EMFILE", EMFILE, "Too many open files"); 591#else 592#ifdef WSAEMFILE 593 inscode(d, ds, de, "EMFILE", WSAEMFILE, "Too many open files"); 594#endif 595#endif 596#ifdef ETXTBSY 597 inscode(d, ds, de, "ETXTBSY", ETXTBSY, "Text file busy"); 598#endif 599#ifdef EINPROGRESS 600 inscode(d, ds, de, "EINPROGRESS", EINPROGRESS, "Operation now in progress"); 601#else 602#ifdef WSAEINPROGRESS 603 inscode(d, ds, de, "EINPROGRESS", WSAEINPROGRESS, "Operation now in progress"); 604#endif 605#endif 606#ifdef ENXIO 607 inscode(d, ds, de, "ENXIO", ENXIO, "No such device or address"); 608#endif 609#ifdef ENOPKG 610 inscode(d, ds, de, "ENOPKG", ENOPKG, "Package not installed"); 611#endif 612#ifdef WSASY 613 inscode(d, ds, de, "WSASY", WSASY, "Error WSASY"); 614#endif 615#ifdef WSAEHOSTDOWN 616 inscode(d, ds, de, "WSAEHOSTDOWN", WSAEHOSTDOWN, "Host is down"); 617#endif 618#ifdef WSAENETDOWN 619 inscode(d, ds, de, "WSAENETDOWN", WSAENETDOWN, "Network is down"); 620#endif 621#ifdef WSAENOTSOCK 622 inscode(d, ds, de, "WSAENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket"); 623#endif 624#ifdef WSAEHOSTUNREACH 625 inscode(d, ds, de, "WSAEHOSTUNREACH", WSAEHOSTUNREACH, "No route to host"); 626#endif 627#ifdef WSAELOOP 628 inscode(d, ds, de, "WSAELOOP", WSAELOOP, "Too many symbolic links encountered"); 629#endif 630#ifdef WSAEMFILE 631 inscode(d, ds, de, "WSAEMFILE", WSAEMFILE, "Too many open files"); 632#endif 633#ifdef WSAESTALE 634 inscode(d, ds, de, "WSAESTALE", WSAESTALE, "Stale NFS file handle"); 635#endif 636#ifdef WSAVERNOTSUPPORTED 637 inscode(d, ds, de, "WSAVERNOTSUPPORTED", WSAVERNOTSUPPORTED, "Error WSAVERNOTSUPPORTED"); 638#endif 639#ifdef WSAENETUNREACH 640 inscode(d, ds, de, "WSAENETUNREACH", WSAENETUNREACH, "Network is unreachable"); 641#endif 642#ifdef WSAEPROCLIM 643 inscode(d, ds, de, "WSAEPROCLIM", WSAEPROCLIM, "Error WSAEPROCLIM"); 644#endif 645#ifdef WSAEFAULT 646 inscode(d, ds, de, "WSAEFAULT", WSAEFAULT, "Bad address"); 647#endif 648#ifdef WSANOTINITIALISED 649 inscode(d, ds, de, "WSANOTINITIALISED", WSANOTINITIALISED, "Error WSANOTINITIALISED"); 650#endif 651#ifdef WSAEUSERS 652 inscode(d, ds, de, "WSAEUSERS", WSAEUSERS, "Too many users"); 653#endif 654#ifdef WSAMAKEASYNCREPL 655 inscode(d, ds, de, "WSAMAKEASYNCREPL", WSAMAKEASYNCREPL, "Error WSAMAKEASYNCREPL"); 656#endif 657#ifdef WSAENOPROTOOPT 658 inscode(d, ds, de, "WSAENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available"); 659#endif 660#ifdef WSAECONNABORTED 661 inscode(d, ds, de, "WSAECONNABORTED", WSAECONNABORTED, "Software caused connection abort"); 662#endif 663#ifdef WSAENAMETOOLONG 664 inscode(d, ds, de, "WSAENAMETOOLONG", WSAENAMETOOLONG, "File name too long"); 665#endif 666#ifdef WSAENOTEMPTY 667 inscode(d, ds, de, "WSAENOTEMPTY", WSAENOTEMPTY, "Directory not empty"); 668#endif 669#ifdef WSAESHUTDOWN 670 inscode(d, ds, de, "WSAESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown"); 671#endif 672#ifdef WSAEAFNOSUPPORT 673 inscode(d, ds, de, "WSAEAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol"); 674#endif 675#ifdef WSAETOOMANYREFS 676 inscode(d, ds, de, "WSAETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice"); 677#endif 678#ifdef WSAEACCES 679 inscode(d, ds, de, "WSAEACCES", WSAEACCES, "Permission denied"); 680#endif 681#ifdef WSATR 682 inscode(d, ds, de, "WSATR", WSATR, "Error WSATR"); 683#endif 684#ifdef WSABASEERR 685 inscode(d, ds, de, "WSABASEERR", WSABASEERR, "Error WSABASEERR"); 686#endif 687#ifdef WSADESCRIPTIO 688 inscode(d, ds, de, "WSADESCRIPTIO", WSADESCRIPTIO, "Error WSADESCRIPTIO"); 689#endif 690#ifdef WSAEMSGSIZE 691 inscode(d, ds, de, "WSAEMSGSIZE", WSAEMSGSIZE, "Message too long"); 692#endif 693#ifdef WSAEBADF 694 inscode(d, ds, de, "WSAEBADF", WSAEBADF, "Bad file number"); 695#endif 696#ifdef WSAECONNRESET 697 inscode(d, ds, de, "WSAECONNRESET", WSAECONNRESET, "Connection reset by peer"); 698#endif 699#ifdef WSAGETSELECTERRO 700 inscode(d, ds, de, "WSAGETSELECTERRO", WSAGETSELECTERRO, "Error WSAGETSELECTERRO"); 701#endif 702#ifdef WSAETIMEDOUT 703 inscode(d, ds, de, "WSAETIMEDOUT", WSAETIMEDOUT, "Connection timed out"); 704#endif 705#ifdef WSAENOBUFS 706 inscode(d, ds, de, "WSAENOBUFS", WSAENOBUFS, "No buffer space available"); 707#endif 708#ifdef WSAEDISCON 709 inscode(d, ds, de, "WSAEDISCON", WSAEDISCON, "Error WSAEDISCON"); 710#endif 711#ifdef WSAEINTR 712 inscode(d, ds, de, "WSAEINTR", WSAEINTR, "Interrupted system call"); 713#endif 714#ifdef WSAEPROTOTYPE 715 inscode(d, ds, de, "WSAEPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket"); 716#endif 717#ifdef WSAHOS 718 inscode(d, ds, de, "WSAHOS", WSAHOS, "Error WSAHOS"); 719#endif 720#ifdef WSAEADDRINUSE 721 inscode(d, ds, de, "WSAEADDRINUSE", WSAEADDRINUSE, "Address already in use"); 722#endif 723#ifdef WSAEADDRNOTAVAIL 724 inscode(d, ds, de, "WSAEADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address"); 725#endif 726#ifdef WSAEALREADY 727 inscode(d, ds, de, "WSAEALREADY", WSAEALREADY, "Operation already in progress"); 728#endif 729#ifdef WSAEPROTONOSUPPORT 730 inscode(d, ds, de, "WSAEPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported"); 731#endif 732#ifdef WSASYSNOTREADY 733 inscode(d, ds, de, "WSASYSNOTREADY", WSASYSNOTREADY, "Error WSASYSNOTREADY"); 734#endif 735#ifdef WSAEWOULDBLOCK 736 inscode(d, ds, de, "WSAEWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block"); 737#endif 738#ifdef WSAEPFNOSUPPORT 739 inscode(d, ds, de, "WSAEPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported"); 740#endif 741#ifdef WSAEOPNOTSUPP 742 inscode(d, ds, de, "WSAEOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint"); 743#endif 744#ifdef WSAEISCONN 745 inscode(d, ds, de, "WSAEISCONN", WSAEISCONN, "Transport endpoint is already connected"); 746#endif 747#ifdef WSAEDQUOT 748 inscode(d, ds, de, "WSAEDQUOT", WSAEDQUOT, "Quota exceeded"); 749#endif 750#ifdef WSAENOTCONN 751 inscode(d, ds, de, "WSAENOTCONN", WSAENOTCONN, "Transport endpoint is not connected"); 752#endif 753#ifdef WSAEREMOTE 754 inscode(d, ds, de, "WSAEREMOTE", WSAEREMOTE, "Object is remote"); 755#endif 756#ifdef WSAEINVAL 757 inscode(d, ds, de, "WSAEINVAL", WSAEINVAL, "Invalid argument"); 758#endif 759#ifdef WSAEINPROGRESS 760 inscode(d, ds, de, "WSAEINPROGRESS", WSAEINPROGRESS, "Operation now in progress"); 761#endif 762#ifdef WSAGETSELECTEVEN 763 inscode(d, ds, de, "WSAGETSELECTEVEN", WSAGETSELECTEVEN, "Error WSAGETSELECTEVEN"); 764#endif 765#ifdef WSAESOCKTNOSUPPORT 766 inscode(d, ds, de, "WSAESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported"); 767#endif 768#ifdef WSAGETASYNCERRO 769 inscode(d, ds, de, "WSAGETASYNCERRO", WSAGETASYNCERRO, "Error WSAGETASYNCERRO"); 770#endif 771#ifdef WSAMAKESELECTREPL 772 inscode(d, ds, de, "WSAMAKESELECTREPL", WSAMAKESELECTREPL, "Error WSAMAKESELECTREPL"); 773#endif 774#ifdef WSAGETASYNCBUFLE 775 inscode(d, ds, de, "WSAGETASYNCBUFLE", WSAGETASYNCBUFLE, "Error WSAGETASYNCBUFLE"); 776#endif 777#ifdef WSAEDESTADDRREQ 778 inscode(d, ds, de, "WSAEDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required"); 779#endif 780#ifdef WSAECONNREFUSED 781 inscode(d, ds, de, "WSAECONNREFUSED", WSAECONNREFUSED, "Connection refused"); 782#endif 783#ifdef WSAENETRESET 784 inscode(d, ds, de, "WSAENETRESET", WSAENETRESET, "Network dropped connection because of reset"); 785#endif 786#ifdef WSAN 787 inscode(d, ds, de, "WSAN", WSAN, "Error WSAN"); 788#endif 789 790 Py_DECREF(de); 791} 792