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