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