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