(root)/
Python-3.11.7/
PC/
errmap.h
       1  int
       2  winerror_to_errno(int winerror)
       3  {
       4      // Unwrap FACILITY_WIN32 HRESULT errors.
       5      if ((winerror & 0xFFFF0000) == 0x80070000) {
       6          winerror &= 0x0000FFFF;
       7      }
       8  
       9      // Winsock error codes (10000-11999) are errno values.
      10      if (winerror >= 10000 && winerror < 12000) {
      11          switch (winerror) {
      12          case WSAEINTR:
      13          case WSAEBADF:
      14          case WSAEACCES:
      15          case WSAEFAULT:
      16          case WSAEINVAL:
      17          case WSAEMFILE:
      18              // Winsock definitions of errno values. See WinSock2.h
      19              return winerror - 10000;
      20          default:
      21              return winerror;
      22          }
      23      }
      24  
      25      switch (winerror) {
      26      case ERROR_FILE_NOT_FOUND:            //    2
      27      case ERROR_PATH_NOT_FOUND:            //    3
      28      case ERROR_INVALID_DRIVE:             //   15
      29      case ERROR_NO_MORE_FILES:             //   18
      30      case ERROR_BAD_NETPATH:               //   53
      31      case ERROR_BAD_NET_NAME:              //   67
      32      case ERROR_BAD_PATHNAME:              //  161
      33      case ERROR_FILENAME_EXCED_RANGE:      //  206
      34          return ENOENT;
      35  
      36      case ERROR_BAD_ENVIRONMENT:           //   10
      37          return E2BIG;
      38  
      39      case ERROR_BAD_FORMAT:                //   11
      40      case ERROR_INVALID_STARTING_CODESEG:  //  188
      41      case ERROR_INVALID_STACKSEG:          //  189
      42      case ERROR_INVALID_MODULETYPE:        //  190
      43      case ERROR_INVALID_EXE_SIGNATURE:     //  191
      44      case ERROR_EXE_MARKED_INVALID:        //  192
      45      case ERROR_BAD_EXE_FORMAT:            //  193
      46      case ERROR_ITERATED_DATA_EXCEEDS_64k: //  194
      47      case ERROR_INVALID_MINALLOCSIZE:      //  195
      48      case ERROR_DYNLINK_FROM_INVALID_RING: //  196
      49      case ERROR_IOPL_NOT_ENABLED:          //  197
      50      case ERROR_INVALID_SEGDPL:            //  198
      51      case ERROR_AUTODATASEG_EXCEEDS_64k:   //  199
      52      case ERROR_RING2SEG_MUST_BE_MOVABLE:  //  200
      53      case ERROR_RELOC_CHAIN_XEEDS_SEGLIM:  //  201
      54      case ERROR_INFLOOP_IN_RELOC_CHAIN:    //  202
      55          return ENOEXEC;
      56  
      57      case ERROR_INVALID_HANDLE:            //    6
      58      case ERROR_INVALID_TARGET_HANDLE:     //  114
      59      case ERROR_DIRECT_ACCESS_HANDLE:      //  130
      60          return EBADF;
      61  
      62      case ERROR_WAIT_NO_CHILDREN:          //  128
      63      case ERROR_CHILD_NOT_COMPLETE:        //  129
      64          return ECHILD;
      65  
      66      case ERROR_NO_PROC_SLOTS:             //   89
      67      case ERROR_MAX_THRDS_REACHED:         //  164
      68      case ERROR_NESTING_NOT_ALLOWED:       //  215
      69          return EAGAIN;
      70  
      71      case ERROR_ARENA_TRASHED:             //    7
      72      case ERROR_NOT_ENOUGH_MEMORY:         //    8
      73      case ERROR_INVALID_BLOCK:             //    9
      74      case ERROR_NOT_ENOUGH_QUOTA:          // 1816
      75          return ENOMEM;
      76  
      77      case ERROR_ACCESS_DENIED:             //    5
      78      case ERROR_CURRENT_DIRECTORY:         //   16
      79      case ERROR_WRITE_PROTECT:             //   19
      80      case ERROR_BAD_UNIT:                  //   20
      81      case ERROR_NOT_READY:                 //   21
      82      case ERROR_BAD_COMMAND:               //   22
      83      case ERROR_CRC:                       //   23
      84      case ERROR_BAD_LENGTH:                //   24
      85      case ERROR_SEEK:                      //   25
      86      case ERROR_NOT_DOS_DISK:              //   26
      87      case ERROR_SECTOR_NOT_FOUND:          //   27
      88      case ERROR_OUT_OF_PAPER:              //   28
      89      case ERROR_WRITE_FAULT:               //   29
      90      case ERROR_READ_FAULT:                //   30
      91      case ERROR_GEN_FAILURE:               //   31
      92      case ERROR_SHARING_VIOLATION:         //   32
      93      case ERROR_LOCK_VIOLATION:            //   33
      94      case ERROR_WRONG_DISK:                //   34
      95      case ERROR_SHARING_BUFFER_EXCEEDED:   //   36
      96      case ERROR_NETWORK_ACCESS_DENIED:     //   65
      97      case ERROR_CANNOT_MAKE:               //   82
      98      case ERROR_FAIL_I24:                  //   83
      99      case ERROR_DRIVE_LOCKED:              //  108
     100      case ERROR_SEEK_ON_DEVICE:            //  132
     101      case ERROR_NOT_LOCKED:                //  158
     102      case ERROR_LOCK_FAILED:               //  167
     103      case 35:                              //   35 (undefined)
     104          return EACCES;
     105  
     106      case ERROR_FILE_EXISTS:               //   80
     107      case ERROR_ALREADY_EXISTS:            //  183
     108          return EEXIST;
     109  
     110      case ERROR_NOT_SAME_DEVICE:           //   17
     111          return EXDEV;
     112  
     113      case ERROR_DIRECTORY:                 //  267 (bpo-12802)
     114          return ENOTDIR;
     115  
     116      case ERROR_TOO_MANY_OPEN_FILES:       //    4
     117          return EMFILE;
     118  
     119      case ERROR_DISK_FULL:                 //  112
     120          return ENOSPC;
     121  
     122      case ERROR_BROKEN_PIPE:               //  109
     123      case ERROR_NO_DATA:                   //  232 (bpo-13063)
     124          return EPIPE;
     125  
     126      case ERROR_DIR_NOT_EMPTY:             //  145
     127          return ENOTEMPTY;
     128  
     129      case ERROR_NO_UNICODE_TRANSLATION:    // 1113
     130          return EILSEQ;
     131  
     132      case ERROR_INVALID_FUNCTION:          //    1
     133      case ERROR_INVALID_ACCESS:            //   12
     134      case ERROR_INVALID_DATA:              //   13
     135      case ERROR_INVALID_PARAMETER:         //   87
     136      case ERROR_NEGATIVE_SEEK:             //  131
     137      default:
     138          return EINVAL;
     139      }
     140  }