LCOV - code coverage report
Current view: | top level - Modules - errnomodule.c (source / functions) |  |  | Hit | Total | Coverage
Test: | CPython 3.12 LCOV report [commit 5e6661bce9] |  | Lines: | 158 | 166 | 95.2 %
Date: | 2023-03-20 08:15:36 |  | Functions: | 3 | 3 | 100.0 %
|  |  | Branches: | 143 | 286 | 50.0 %

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

Generated by: LCOV version 1.14