/[dtapublic]/projs/emts/trunk/src/c_tcl_base_7_5_w_mods/tclwinerror.c
ViewVC logotype

Diff of /projs/emts/trunk/src/c_tcl_base_7_5_w_mods/tclwinerror.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

projs/trunk/shared_source/c_tcl_base_7_5_w_mods/tclwinerror.c revision 64 by dashley, Sun Oct 30 04:21:11 2016 UTC projs/ets/trunk/src/c_tcl_base_7_5_w_mods/tclwinerror.c revision 220 by dashley, Sun Jul 22 15:58:07 2018 UTC
# Line 1  Line 1 
 /* $Header$ */  
   
 /*  
  * tclWinError.c --  
  *  
  *      This file contains code for converting from Win32 errors to  
  *      errno errors.  
  *  
  * Copyright (c) 1995-1996 by Sun Microsystems, Inc.  
  *  
  * See the file "license.terms" for information on usage and redistribution  
  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.  
  *  
  * RCS: @(#) $Id: tclwinerror.c,v 1.1.1.1 2001/06/13 04:48:48 dtashley Exp $  
  */  
   
 #include "tclWinInt.h"  
   
 /*  
  * The following table contains the mapping from Win32 errors to  
  * errno errors.  
  */  
   
 static char errorTable[] = {  
     0,  
     EINVAL,     /* ERROR_INVALID_FUNCTION       1 */  
     ENOENT,     /* ERROR_FILE_NOT_FOUND         2 */  
     ENOENT,     /* ERROR_PATH_NOT_FOUND         3 */  
     EMFILE,     /* ERROR_TOO_MANY_OPEN_FILES    4 */  
     EACCES,     /* ERROR_ACCESS_DENIED          5 */  
     EBADF,      /* ERROR_INVALID_HANDLE         6 */  
     ENOMEM,     /* ERROR_ARENA_TRASHED          7 */  
     ENOMEM,     /* ERROR_NOT_ENOUGH_MEMORY      8 */  
     ENOMEM,     /* ERROR_INVALID_BLOCK          9 */  
     E2BIG,      /* ERROR_BAD_ENVIRONMENT        10 */  
     ENOEXEC,    /* ERROR_BAD_FORMAT             11 */  
     EACCES,     /* ERROR_INVALID_ACCESS         12 */  
     EINVAL,     /* ERROR_INVALID_DATA           13 */  
     EFAULT,     /* ERROR_OUT_OF_MEMORY          14 */  
     ENOENT,     /* ERROR_INVALID_DRIVE          15 */  
     EACCES,     /* ERROR_CURRENT_DIRECTORY      16 */  
     EXDEV,      /* ERROR_NOT_SAME_DEVICE        17 */  
     ENOENT,     /* ERROR_NO_MORE_FILES          18 */  
     EROFS,      /* ERROR_WRITE_PROTECT          19 */  
     ENXIO,      /* ERROR_BAD_UNIT               20 */  
     EBUSY,      /* ERROR_NOT_READY              21 */  
     EIO,        /* ERROR_BAD_COMMAND            22 */  
     EIO,        /* ERROR_CRC                    23 */  
     EIO,        /* ERROR_BAD_LENGTH             24 */  
     EIO,        /* ERROR_SEEK                   25 */  
     EIO,        /* ERROR_NOT_DOS_DISK           26 */  
     ENXIO,      /* ERROR_SECTOR_NOT_FOUND       27 */  
     EBUSY,      /* ERROR_OUT_OF_PAPER           28 */  
     EIO,        /* ERROR_WRITE_FAULT            29 */  
     EIO,        /* ERROR_READ_FAULT             30 */  
     EIO,        /* ERROR_GEN_FAILURE            31 */  
     EACCES,     /* ERROR_SHARING_VIOLATION      32 */  
     EACCES,     /* ERROR_LOCK_VIOLATION         33 */  
     ENXIO,      /* ERROR_WRONG_DISK             34 */  
     ENFILE,     /* ERROR_FCB_UNAVAILABLE        35 */  
     ENFILE,     /* ERROR_SHARING_BUFFER_EXCEEDED        36 */  
     EINVAL,     /* 37 */  
     EINVAL,     /* 38 */  
     ENOSPC,     /* ERROR_HANDLE_DISK_FULL       39 */  
     EINVAL,     /* 40 */  
     EINVAL,     /* 41 */  
     EINVAL,     /* 42 */  
     EINVAL,     /* 43 */  
     EINVAL,     /* 44 */  
     EINVAL,     /* 45 */  
     EINVAL,     /* 46 */  
     EINVAL,     /* 47 */  
     EINVAL,     /* 48 */  
     EINVAL,     /* 49 */  
     ENODEV,     /* ERROR_NOT_SUPPORTED          50 */  
     EBUSY,      /* ERROR_REM_NOT_LIST           51 */  
     EEXIST,     /* ERROR_DUP_NAME               52 */  
     ENOENT,     /* ERROR_BAD_NETPATH            53 */  
     EBUSY,      /* ERROR_NETWORK_BUSY           54 */  
     ENODEV,     /* ERROR_DEV_NOT_EXIST          55 */  
     EAGAIN,     /* ERROR_TOO_MANY_CMDS          56 */  
     EIO,        /* ERROR_ADAP_HDW_ERR           57 */  
     EIO,        /* ERROR_BAD_NET_RESP           58 */  
     EIO,        /* ERROR_UNEXP_NET_ERR          59 */  
     EINVAL,     /* ERROR_BAD_REM_ADAP           60 */  
     EFBIG,      /* ERROR_PRINTQ_FULL            61 */  
     ENOSPC,     /* ERROR_NO_SPOOL_SPACE         62 */  
     ENOENT,     /* ERROR_PRINT_CANCELLED        63 */  
     ENOENT,     /* ERROR_NETNAME_DELETED        64 */  
     EACCES,     /* ERROR_NETWORK_ACCESS_DENIED  65 */  
     ENODEV,     /* ERROR_BAD_DEV_TYPE           66 */  
     ENOENT,     /* ERROR_BAD_NET_NAME           67 */  
     ENFILE,     /* ERROR_TOO_MANY_NAMES         68 */  
     EIO,        /* ERROR_TOO_MANY_SESS          69 */  
     EAGAIN,     /* ERROR_SHARING_PAUSED         70 */  
     EINVAL,     /* ERROR_REQ_NOT_ACCEP          71 */  
     EAGAIN,     /* ERROR_REDIR_PAUSED           72 */  
     EINVAL,     /* 73 */  
     EINVAL,     /* 74 */  
     EINVAL,     /* 75 */  
     EINVAL,     /* 76 */  
     EINVAL,     /* 77 */  
     EINVAL,     /* 78 */  
     EINVAL,     /* 79 */  
     EEXIST,     /* ERROR_FILE_EXISTS            80 */  
     EINVAL,     /* 81 */  
     ENOSPC,     /* ERROR_CANNOT_MAKE            82 */  
     EIO,        /* ERROR_FAIL_I24               83 */  
     ENFILE,     /* ERROR_OUT_OF_STRUCTURES      84 */  
     EEXIST,     /* ERROR_ALREADY_ASSIGNED       85 */  
     EPERM,      /* ERROR_INVALID_PASSWORD       86 */  
     EINVAL,     /* ERROR_INVALID_PARAMETER      87 */  
     EIO,        /* ERROR_NET_WRITE_FAULT        88 */  
     EAGAIN,     /* ERROR_NO_PROC_SLOTS          89 */  
     EINVAL,     /* 90 */  
     EINVAL,     /* 91 */  
     EINVAL,     /* 92 */  
     EINVAL,     /* 93 */  
     EINVAL,     /* 94 */  
     EINVAL,     /* 95 */  
     EINVAL,     /* 96 */  
     EINVAL,     /* 97 */  
     EINVAL,     /* 98 */  
     EINVAL,     /* 99 */  
     EINVAL,     /* 100 */  
     EINVAL,     /* 101 */  
     EINVAL,     /* 102 */  
     EINVAL,     /* 103 */  
     EINVAL,     /* 104 */  
     EINVAL,     /* 105 */  
     EINVAL,     /* 106 */  
     EXDEV,      /* ERROR_DISK_CHANGE            107 */  
     EAGAIN,     /* ERROR_DRIVE_LOCKED           108 */  
     EPIPE,      /* ERROR_BROKEN_PIPE            109 */  
     ENOENT,     /* ERROR_OPEN_FAILED            110 */  
     EINVAL,     /* ERROR_BUFFER_OVERFLOW        111 */  
     ENOSPC,     /* ERROR_DISK_FULL              112 */  
     EMFILE,     /* ERROR_NO_MORE_SEARCH_HANDLES 113 */  
     EBADF,      /* ERROR_INVALID_TARGET_HANDLE  114 */  
     EFAULT,     /* ERROR_PROTECTION_VIOLATION   115 */  
     EINVAL,     /* 116 */  
     EINVAL,     /* 117 */  
     EINVAL,     /* 118 */  
     EINVAL,     /* 119 */  
     EINVAL,     /* 120 */  
     EINVAL,     /* 121 */  
     EINVAL,     /* 122 */  
     ENOENT,     /* ERROR_INVALID_NAME           123 */  
     EINVAL,     /* 124 */  
     EINVAL,     /* 125 */  
     EINVAL,     /* 126 */  
     ESRCH,      /* ERROR_PROC_NOT_FOUND         127 */  
     ECHILD,     /* ERROR_WAIT_NO_CHILDREN       128 */  
     ECHILD,     /* ERROR_CHILD_NOT_COMPLETE     129 */  
     EBADF,      /* ERROR_DIRECT_ACCESS_HANDLE   130 */  
     EINVAL,     /* 131 */  
     ESPIPE,     /* ERROR_SEEK_ON_DEVICE         132 */  
     EINVAL,     /* 133 */  
     EINVAL,     /* 134 */  
     EINVAL,     /* 135 */  
     EINVAL,     /* 136 */  
     EINVAL,     /* 137 */  
     EINVAL,     /* 138 */  
     EINVAL,     /* 139 */  
     EINVAL,     /* 140 */  
     EINVAL,     /* 141 */  
     EAGAIN,     /* ERROR_BUSY_DRIVE             142 */  
     EINVAL,     /* 143 */  
     EINVAL,     /* 144 */  
     EEXIST,     /* ERROR_DIR_NOT_EMPTY          145 */  
     EINVAL,     /* 146 */  
     EINVAL,     /* 147 */  
     EINVAL,     /* 148 */  
     EINVAL,     /* 149 */  
     EINVAL,     /* 150 */  
     EINVAL,     /* 151 */  
     EINVAL,     /* 152 */  
     EINVAL,     /* 153 */  
     EINVAL,     /* 154 */  
     EINVAL,     /* 155 */  
     EINVAL,     /* 156 */  
     EINVAL,     /* 157 */  
     EACCES,     /* ERROR_NOT_LOCKED             158 */  
     EINVAL,     /* 159 */  
     EINVAL,     /* 160 */  
     ENOENT,     /* ERROR_BAD_PATHNAME           161 */  
     EINVAL,     /* 162 */  
     EINVAL,     /* 163 */  
     EINVAL,     /* 164 */  
     EINVAL,     /* 165 */  
     EINVAL,     /* 166 */  
     EACCES,     /* ERROR_LOCK_FAILED            167 */  
     EINVAL,     /* 168 */  
     EINVAL,     /* 169 */  
     EINVAL,     /* 170 */  
     EINVAL,     /* 171 */  
     EINVAL,     /* 172 */  
     EINVAL,     /* 173 */  
     EINVAL,     /* 174 */  
     EINVAL,     /* 175 */  
     EINVAL,     /* 176 */  
     EINVAL,     /* 177 */  
     EINVAL,     /* 178 */  
     EINVAL,     /* 179 */  
     EINVAL,     /* 180 */  
     EINVAL,     /* 181 */  
     EINVAL,     /* 182 */  
     EEXIST,     /* ERROR_ALREADY_EXISTS         183 */  
     ECHILD,     /* ERROR_NO_CHILD_PROCESS       184 */  
     EINVAL,     /* 185 */  
     EINVAL,     /* 186 */  
     EINVAL,     /* 187 */  
     EINVAL,     /* 188 */  
     EINVAL,     /* 189 */  
     EINVAL,     /* 190 */  
     EINVAL,     /* 191 */  
     EINVAL,     /* 192 */  
     EINVAL,     /* 193 */  
     EINVAL,     /* 194 */  
     EINVAL,     /* 195 */  
     EINVAL,     /* 196 */  
     EINVAL,     /* 197 */  
     EINVAL,     /* 198 */  
     EINVAL,     /* 199 */  
     EINVAL,     /* 200 */  
     EINVAL,     /* 201 */  
     EINVAL,     /* 202 */  
     EINVAL,     /* 203 */  
     EINVAL,     /* 204 */  
     EINVAL,     /* 205 */  
     ENAMETOOLONG,/* ERROR_FILENAME_EXCED_RANGE  206 */  
     EINVAL,     /* 207 */  
     EINVAL,     /* 208 */  
     EINVAL,     /* 209 */  
     EINVAL,     /* 210 */  
     EINVAL,     /* 211 */  
     EINVAL,     /* 212 */  
     EINVAL,     /* 213 */  
     EINVAL,     /* 214 */  
     EINVAL,     /* 215 */  
     EINVAL,     /* 216 */  
     EINVAL,     /* 217 */  
     EINVAL,     /* 218 */  
     EINVAL,     /* 219 */  
     EINVAL,     /* 220 */  
     EINVAL,     /* 221 */  
     EINVAL,     /* 222 */  
     EINVAL,     /* 223 */  
     EINVAL,     /* 224 */  
     EINVAL,     /* 225 */  
     EINVAL,     /* 226 */  
     EINVAL,     /* 227 */  
     EINVAL,     /* 228 */  
     EINVAL,     /* 229 */  
     EPIPE,      /* ERROR_BAD_PIPE               230 */  
     EAGAIN,     /* ERROR_PIPE_BUSY              231 */  
     EPIPE,      /* ERROR_NO_DATA                232 */  
     EPIPE,      /* ERROR_PIPE_NOT_CONNECTED     233 */  
     EINVAL,     /* 234 */  
     EINVAL,     /* 235 */  
     EINVAL,     /* 236 */  
     EINVAL,     /* 237 */  
     EINVAL,     /* 238 */  
     EINVAL,     /* 239 */  
     EINVAL,     /* 240 */  
     EINVAL,     /* 241 */  
     EINVAL,     /* 242 */  
     EINVAL,     /* 243 */  
     EINVAL,     /* 244 */  
     EINVAL,     /* 245 */  
     EINVAL,     /* 246 */  
     EINVAL,     /* 247 */  
     EINVAL,     /* 248 */  
     EINVAL,     /* 249 */  
     EINVAL,     /* 250 */  
     EINVAL,     /* 251 */  
     EINVAL,     /* 252 */  
     EINVAL,     /* 253 */  
     EINVAL,     /* 254 */  
     EINVAL,     /* 255 */  
     EINVAL,     /* 256 */  
     EINVAL,     /* 257 */  
     EINVAL,     /* 258 */  
     EINVAL,     /* 259 */  
     EINVAL,     /* 260 */  
     EINVAL,     /* 261 */  
     EINVAL,     /* 262 */  
     EINVAL,     /* 263 */  
     EINVAL,     /* 264 */  
     EINVAL,     /* 265 */  
     EINVAL,     /* 266 */  
     ENOTDIR,    /* ERROR_DIRECTORY              267 */  
 };  
   
 static const unsigned int tableLen = sizeof(errorTable);  
   
 /*  
  * The following table contains the mapping from WinSock errors to  
  * errno errors.  
  */  
   
 static int wsaErrorTable[] = {  
     EWOULDBLOCK,        /* WSAEWOULDBLOCK */  
     EINPROGRESS,        /* WSAEINPROGRESS */  
     EALREADY,           /* WSAEALREADY */  
     ENOTSOCK,           /* WSAENOTSOCK */  
     EDESTADDRREQ,       /* WSAEDESTADDRREQ */  
     EMSGSIZE,           /* WSAEMSGSIZE */  
     EPROTOTYPE,         /* WSAEPROTOTYPE */  
     ENOPROTOOPT,        /* WSAENOPROTOOPT */  
     EPROTONOSUPPORT,    /* WSAEPROTONOSUPPORT */  
     ESOCKTNOSUPPORT,    /* WSAESOCKTNOSUPPORT */  
     EOPNOTSUPP,         /* WSAEOPNOTSUPP */  
     EPFNOSUPPORT,       /* WSAEPFNOSUPPORT */  
     EAFNOSUPPORT,       /* WSAEAFNOSUPPORT */  
     EADDRINUSE,         /* WSAEADDRINUSE */  
     EADDRNOTAVAIL,      /* WSAEADDRNOTAVAIL */  
     ENETDOWN,           /* WSAENETDOWN */  
     ENETUNREACH,        /* WSAENETUNREACH */  
     ENETRESET,          /* WSAENETRESET */  
     ECONNABORTED,       /* WSAECONNABORTED */  
     ECONNRESET,         /* WSAECONNRESET */  
     ENOBUFS,            /* WSAENOBUFS */  
     EISCONN,            /* WSAEISCONN */  
     ENOTCONN,           /* WSAENOTCONN */  
     ESHUTDOWN,          /* WSAESHUTDOWN */  
     ETOOMANYREFS,       /* WSAETOOMANYREFS */  
     ETIMEDOUT,          /* WSAETIMEDOUT */  
     ECONNREFUSED,       /* WSAECONNREFUSED */  
     ELOOP,              /* WSAELOOP */  
     ENAMETOOLONG,       /* WSAENAMETOOLONG */  
     EHOSTDOWN,          /* WSAEHOSTDOWN */  
     EHOSTUNREACH,       /* WSAEHOSTUNREACH */  
     ENOTEMPTY,          /* WSAENOTEMPTY */  
     EAGAIN,             /* WSAEPROCLIM */  
     EUSERS,             /* WSAEUSERS */  
     EDQUOT,             /* WSAEDQUOT */  
     ESTALE,             /* WSAESTALE */  
     EREMOTE,            /* WSAEREMOTE */  
 };  
   
 /*  
  *----------------------------------------------------------------------  
  *  
  * TclWinConvertError --  
  *  
  *      This routine converts a Win32 error into an errno value.  
  *  
  * Results:  
  *      None.  
  *  
  * Side effects:  
  *      Sets the errno global variable.  
  *  
  *----------------------------------------------------------------------  
  */  
   
 void  
 TclWinConvertError(errCode)  
     DWORD errCode;              /* Win32 error code. */  
 {  
     if (errCode >= tableLen) {  
         Tcl_SetErrno(EINVAL);  
     } else {  
         Tcl_SetErrno(errorTable[errCode]);  
     }  
 }  
   
 /*  
  *----------------------------------------------------------------------  
  *  
  * TclWinConvertWSAError --  
  *  
  *      This routine converts a WinSock error into an errno value.  
  *  
  * Results:  
  *      None.  
  *  
  * Side effects:  
  *      Sets the errno global variable.  
  *  
  *----------------------------------------------------------------------  
  */  
   
 void  
 TclWinConvertWSAError(errCode)  
     DWORD errCode;              /* Win32 error code. */  
 {  
     if ((errCode >= WSAEWOULDBLOCK) && (errCode <= WSAEREMOTE)) {  
         Tcl_SetErrno(wsaErrorTable[errCode - WSAEWOULDBLOCK]);  
     } else {  
         Tcl_SetErrno(EINVAL);  
     }  
 }  
   
   
 /* $History: tclwinerror.c $  
  *  
  * *****************  Version 1  *****************  
  * User: Dtashley     Date: 1/02/01    Time: 12:38a  
  * Created in $/IjuScripter, IjuConsole/Source/Tcl Base  
  * Initial check-in.  
  */  
   
 /* End of TCLWINERROR.C */  
1    /* $Header$ */
2    /*
3     * tclWinError.c --
4     *
5     *      This file contains code for converting from Win32 errors to
6     *      errno errors.
7     *
8     * Copyright (c) 1995-1996 by Sun Microsystems, Inc.
9     *
10     * See the file "license.terms" for information on usage and redistribution
11     * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12     *
13     * RCS: @(#) $Id: tclwinerror.c,v 1.1.1.1 2001/06/13 04:48:48 dtashley Exp $
14     */
15    
16    #include "tclWinInt.h"
17    
18    /*
19     * The following table contains the mapping from Win32 errors to
20     * errno errors.
21     */
22    
23    static char errorTable[] = {
24        0,
25        EINVAL,     /* ERROR_INVALID_FUNCTION       1 */
26        ENOENT,     /* ERROR_FILE_NOT_FOUND         2 */
27        ENOENT,     /* ERROR_PATH_NOT_FOUND         3 */
28        EMFILE,     /* ERROR_TOO_MANY_OPEN_FILES    4 */
29        EACCES,     /* ERROR_ACCESS_DENIED          5 */
30        EBADF,      /* ERROR_INVALID_HANDLE         6 */
31        ENOMEM,     /* ERROR_ARENA_TRASHED          7 */
32        ENOMEM,     /* ERROR_NOT_ENOUGH_MEMORY      8 */
33        ENOMEM,     /* ERROR_INVALID_BLOCK          9 */
34        E2BIG,      /* ERROR_BAD_ENVIRONMENT        10 */
35        ENOEXEC,    /* ERROR_BAD_FORMAT             11 */
36        EACCES,     /* ERROR_INVALID_ACCESS         12 */
37        EINVAL,     /* ERROR_INVALID_DATA           13 */
38        EFAULT,     /* ERROR_OUT_OF_MEMORY          14 */
39        ENOENT,     /* ERROR_INVALID_DRIVE          15 */
40        EACCES,     /* ERROR_CURRENT_DIRECTORY      16 */
41        EXDEV,      /* ERROR_NOT_SAME_DEVICE        17 */
42        ENOENT,     /* ERROR_NO_MORE_FILES          18 */
43        EROFS,      /* ERROR_WRITE_PROTECT          19 */
44        ENXIO,      /* ERROR_BAD_UNIT               20 */
45        EBUSY,      /* ERROR_NOT_READY              21 */
46        EIO,        /* ERROR_BAD_COMMAND            22 */
47        EIO,        /* ERROR_CRC                    23 */
48        EIO,        /* ERROR_BAD_LENGTH             24 */
49        EIO,        /* ERROR_SEEK                   25 */
50        EIO,        /* ERROR_NOT_DOS_DISK           26 */
51        ENXIO,      /* ERROR_SECTOR_NOT_FOUND       27 */
52        EBUSY,      /* ERROR_OUT_OF_PAPER           28 */
53        EIO,        /* ERROR_WRITE_FAULT            29 */
54        EIO,        /* ERROR_READ_FAULT             30 */
55        EIO,        /* ERROR_GEN_FAILURE            31 */
56        EACCES,     /* ERROR_SHARING_VIOLATION      32 */
57        EACCES,     /* ERROR_LOCK_VIOLATION         33 */
58        ENXIO,      /* ERROR_WRONG_DISK             34 */
59        ENFILE,     /* ERROR_FCB_UNAVAILABLE        35 */
60        ENFILE,     /* ERROR_SHARING_BUFFER_EXCEEDED        36 */
61        EINVAL,     /* 37 */
62        EINVAL,     /* 38 */
63        ENOSPC,     /* ERROR_HANDLE_DISK_FULL       39 */
64        EINVAL,     /* 40 */
65        EINVAL,     /* 41 */
66        EINVAL,     /* 42 */
67        EINVAL,     /* 43 */
68        EINVAL,     /* 44 */
69        EINVAL,     /* 45 */
70        EINVAL,     /* 46 */
71        EINVAL,     /* 47 */
72        EINVAL,     /* 48 */
73        EINVAL,     /* 49 */
74        ENODEV,     /* ERROR_NOT_SUPPORTED          50 */
75        EBUSY,      /* ERROR_REM_NOT_LIST           51 */
76        EEXIST,     /* ERROR_DUP_NAME               52 */
77        ENOENT,     /* ERROR_BAD_NETPATH            53 */
78        EBUSY,      /* ERROR_NETWORK_BUSY           54 */
79        ENODEV,     /* ERROR_DEV_NOT_EXIST          55 */
80        EAGAIN,     /* ERROR_TOO_MANY_CMDS          56 */
81        EIO,        /* ERROR_ADAP_HDW_ERR           57 */
82        EIO,        /* ERROR_BAD_NET_RESP           58 */
83        EIO,        /* ERROR_UNEXP_NET_ERR          59 */
84        EINVAL,     /* ERROR_BAD_REM_ADAP           60 */
85        EFBIG,      /* ERROR_PRINTQ_FULL            61 */
86        ENOSPC,     /* ERROR_NO_SPOOL_SPACE         62 */
87        ENOENT,     /* ERROR_PRINT_CANCELLED        63 */
88        ENOENT,     /* ERROR_NETNAME_DELETED        64 */
89        EACCES,     /* ERROR_NETWORK_ACCESS_DENIED  65 */
90        ENODEV,     /* ERROR_BAD_DEV_TYPE           66 */
91        ENOENT,     /* ERROR_BAD_NET_NAME           67 */
92        ENFILE,     /* ERROR_TOO_MANY_NAMES         68 */
93        EIO,        /* ERROR_TOO_MANY_SESS          69 */
94        EAGAIN,     /* ERROR_SHARING_PAUSED         70 */
95        EINVAL,     /* ERROR_REQ_NOT_ACCEP          71 */
96        EAGAIN,     /* ERROR_REDIR_PAUSED           72 */
97        EINVAL,     /* 73 */
98        EINVAL,     /* 74 */
99        EINVAL,     /* 75 */
100        EINVAL,     /* 76 */
101        EINVAL,     /* 77 */
102        EINVAL,     /* 78 */
103        EINVAL,     /* 79 */
104        EEXIST,     /* ERROR_FILE_EXISTS            80 */
105        EINVAL,     /* 81 */
106        ENOSPC,     /* ERROR_CANNOT_MAKE            82 */
107        EIO,        /* ERROR_FAIL_I24               83 */
108        ENFILE,     /* ERROR_OUT_OF_STRUCTURES      84 */
109        EEXIST,     /* ERROR_ALREADY_ASSIGNED       85 */
110        EPERM,      /* ERROR_INVALID_PASSWORD       86 */
111        EINVAL,     /* ERROR_INVALID_PARAMETER      87 */
112        EIO,        /* ERROR_NET_WRITE_FAULT        88 */
113        EAGAIN,     /* ERROR_NO_PROC_SLOTS          89 */
114        EINVAL,     /* 90 */
115        EINVAL,     /* 91 */
116        EINVAL,     /* 92 */
117        EINVAL,     /* 93 */
118        EINVAL,     /* 94 */
119        EINVAL,     /* 95 */
120        EINVAL,     /* 96 */
121        EINVAL,     /* 97 */
122        EINVAL,     /* 98 */
123        EINVAL,     /* 99 */
124        EINVAL,     /* 100 */
125        EINVAL,     /* 101 */
126        EINVAL,     /* 102 */
127        EINVAL,     /* 103 */
128        EINVAL,     /* 104 */
129        EINVAL,     /* 105 */
130        EINVAL,     /* 106 */
131        EXDEV,      /* ERROR_DISK_CHANGE            107 */
132        EAGAIN,     /* ERROR_DRIVE_LOCKED           108 */
133        EPIPE,      /* ERROR_BROKEN_PIPE            109 */
134        ENOENT,     /* ERROR_OPEN_FAILED            110 */
135        EINVAL,     /* ERROR_BUFFER_OVERFLOW        111 */
136        ENOSPC,     /* ERROR_DISK_FULL              112 */
137        EMFILE,     /* ERROR_NO_MORE_SEARCH_HANDLES 113 */
138        EBADF,      /* ERROR_INVALID_TARGET_HANDLE  114 */
139        EFAULT,     /* ERROR_PROTECTION_VIOLATION   115 */
140        EINVAL,     /* 116 */
141        EINVAL,     /* 117 */
142        EINVAL,     /* 118 */
143        EINVAL,     /* 119 */
144        EINVAL,     /* 120 */
145        EINVAL,     /* 121 */
146        EINVAL,     /* 122 */
147        ENOENT,     /* ERROR_INVALID_NAME           123 */
148        EINVAL,     /* 124 */
149        EINVAL,     /* 125 */
150        EINVAL,     /* 126 */
151        ESRCH,      /* ERROR_PROC_NOT_FOUND         127 */
152        ECHILD,     /* ERROR_WAIT_NO_CHILDREN       128 */
153        ECHILD,     /* ERROR_CHILD_NOT_COMPLETE     129 */
154        EBADF,      /* ERROR_DIRECT_ACCESS_HANDLE   130 */
155        EINVAL,     /* 131 */
156        ESPIPE,     /* ERROR_SEEK_ON_DEVICE         132 */
157        EINVAL,     /* 133 */
158        EINVAL,     /* 134 */
159        EINVAL,     /* 135 */
160        EINVAL,     /* 136 */
161        EINVAL,     /* 137 */
162        EINVAL,     /* 138 */
163        EINVAL,     /* 139 */
164        EINVAL,     /* 140 */
165        EINVAL,     /* 141 */
166        EAGAIN,     /* ERROR_BUSY_DRIVE             142 */
167        EINVAL,     /* 143 */
168        EINVAL,     /* 144 */
169        EEXIST,     /* ERROR_DIR_NOT_EMPTY          145 */
170        EINVAL,     /* 146 */
171        EINVAL,     /* 147 */
172        EINVAL,     /* 148 */
173        EINVAL,     /* 149 */
174        EINVAL,     /* 150 */
175        EINVAL,     /* 151 */
176        EINVAL,     /* 152 */
177        EINVAL,     /* 153 */
178        EINVAL,     /* 154 */
179        EINVAL,     /* 155 */
180        EINVAL,     /* 156 */
181        EINVAL,     /* 157 */
182        EACCES,     /* ERROR_NOT_LOCKED             158 */
183        EINVAL,     /* 159 */
184        EINVAL,     /* 160 */
185        ENOENT,     /* ERROR_BAD_PATHNAME           161 */
186        EINVAL,     /* 162 */
187        EINVAL,     /* 163 */
188        EINVAL,     /* 164 */
189        EINVAL,     /* 165 */
190        EINVAL,     /* 166 */
191        EACCES,     /* ERROR_LOCK_FAILED            167 */
192        EINVAL,     /* 168 */
193        EINVAL,     /* 169 */
194        EINVAL,     /* 170 */
195        EINVAL,     /* 171 */
196        EINVAL,     /* 172 */
197        EINVAL,     /* 173 */
198        EINVAL,     /* 174 */
199        EINVAL,     /* 175 */
200        EINVAL,     /* 176 */
201        EINVAL,     /* 177 */
202        EINVAL,     /* 178 */
203        EINVAL,     /* 179 */
204        EINVAL,     /* 180 */
205        EINVAL,     /* 181 */
206        EINVAL,     /* 182 */
207        EEXIST,     /* ERROR_ALREADY_EXISTS         183 */
208        ECHILD,     /* ERROR_NO_CHILD_PROCESS       184 */
209        EINVAL,     /* 185 */
210        EINVAL,     /* 186 */
211        EINVAL,     /* 187 */
212        EINVAL,     /* 188 */
213        EINVAL,     /* 189 */
214        EINVAL,     /* 190 */
215        EINVAL,     /* 191 */
216        EINVAL,     /* 192 */
217        EINVAL,     /* 193 */
218        EINVAL,     /* 194 */
219        EINVAL,     /* 195 */
220        EINVAL,     /* 196 */
221        EINVAL,     /* 197 */
222        EINVAL,     /* 198 */
223        EINVAL,     /* 199 */
224        EINVAL,     /* 200 */
225        EINVAL,     /* 201 */
226        EINVAL,     /* 202 */
227        EINVAL,     /* 203 */
228        EINVAL,     /* 204 */
229        EINVAL,     /* 205 */
230        ENAMETOOLONG,/* ERROR_FILENAME_EXCED_RANGE  206 */
231        EINVAL,     /* 207 */
232        EINVAL,     /* 208 */
233        EINVAL,     /* 209 */
234        EINVAL,     /* 210 */
235        EINVAL,     /* 211 */
236        EINVAL,     /* 212 */
237        EINVAL,     /* 213 */
238        EINVAL,     /* 214 */
239        EINVAL,     /* 215 */
240        EINVAL,     /* 216 */
241        EINVAL,     /* 217 */
242        EINVAL,     /* 218 */
243        EINVAL,     /* 219 */
244        EINVAL,     /* 220 */
245        EINVAL,     /* 221 */
246        EINVAL,     /* 222 */
247        EINVAL,     /* 223 */
248        EINVAL,     /* 224 */
249        EINVAL,     /* 225 */
250        EINVAL,     /* 226 */
251        EINVAL,     /* 227 */
252        EINVAL,     /* 228 */
253        EINVAL,     /* 229 */
254        EPIPE,      /* ERROR_BAD_PIPE               230 */
255        EAGAIN,     /* ERROR_PIPE_BUSY              231 */
256        EPIPE,      /* ERROR_NO_DATA                232 */
257        EPIPE,      /* ERROR_PIPE_NOT_CONNECTED     233 */
258        EINVAL,     /* 234 */
259        EINVAL,     /* 235 */
260        EINVAL,     /* 236 */
261        EINVAL,     /* 237 */
262        EINVAL,     /* 238 */
263        EINVAL,     /* 239 */
264        EINVAL,     /* 240 */
265        EINVAL,     /* 241 */
266        EINVAL,     /* 242 */
267        EINVAL,     /* 243 */
268        EINVAL,     /* 244 */
269        EINVAL,     /* 245 */
270        EINVAL,     /* 246 */
271        EINVAL,     /* 247 */
272        EINVAL,     /* 248 */
273        EINVAL,     /* 249 */
274        EINVAL,     /* 250 */
275        EINVAL,     /* 251 */
276        EINVAL,     /* 252 */
277        EINVAL,     /* 253 */
278        EINVAL,     /* 254 */
279        EINVAL,     /* 255 */
280        EINVAL,     /* 256 */
281        EINVAL,     /* 257 */
282        EINVAL,     /* 258 */
283        EINVAL,     /* 259 */
284        EINVAL,     /* 260 */
285        EINVAL,     /* 261 */
286        EINVAL,     /* 262 */
287        EINVAL,     /* 263 */
288        EINVAL,     /* 264 */
289        EINVAL,     /* 265 */
290        EINVAL,     /* 266 */
291        ENOTDIR,    /* ERROR_DIRECTORY              267 */
292    };
293    
294    static const unsigned int tableLen = sizeof(errorTable);
295    
296    /*
297     * The following table contains the mapping from WinSock errors to
298     * errno errors.
299     */
300    
301    static int wsaErrorTable[] = {
302        EWOULDBLOCK,        /* WSAEWOULDBLOCK */
303        EINPROGRESS,        /* WSAEINPROGRESS */
304        EALREADY,           /* WSAEALREADY */
305        ENOTSOCK,           /* WSAENOTSOCK */
306        EDESTADDRREQ,       /* WSAEDESTADDRREQ */
307        EMSGSIZE,           /* WSAEMSGSIZE */
308        EPROTOTYPE,         /* WSAEPROTOTYPE */
309        ENOPROTOOPT,        /* WSAENOPROTOOPT */
310        EPROTONOSUPPORT,    /* WSAEPROTONOSUPPORT */
311        ESOCKTNOSUPPORT,    /* WSAESOCKTNOSUPPORT */
312        EOPNOTSUPP,         /* WSAEOPNOTSUPP */
313        EPFNOSUPPORT,       /* WSAEPFNOSUPPORT */
314        EAFNOSUPPORT,       /* WSAEAFNOSUPPORT */
315        EADDRINUSE,         /* WSAEADDRINUSE */
316        EADDRNOTAVAIL,      /* WSAEADDRNOTAVAIL */
317        ENETDOWN,           /* WSAENETDOWN */
318        ENETUNREACH,        /* WSAENETUNREACH */
319        ENETRESET,          /* WSAENETRESET */
320        ECONNABORTED,       /* WSAECONNABORTED */
321        ECONNRESET,         /* WSAECONNRESET */
322        ENOBUFS,            /* WSAENOBUFS */
323        EISCONN,            /* WSAEISCONN */
324        ENOTCONN,           /* WSAENOTCONN */
325        ESHUTDOWN,          /* WSAESHUTDOWN */
326        ETOOMANYREFS,       /* WSAETOOMANYREFS */
327        ETIMEDOUT,          /* WSAETIMEDOUT */
328        ECONNREFUSED,       /* WSAECONNREFUSED */
329        ELOOP,              /* WSAELOOP */
330        ENAMETOOLONG,       /* WSAENAMETOOLONG */
331        EHOSTDOWN,          /* WSAEHOSTDOWN */
332        EHOSTUNREACH,       /* WSAEHOSTUNREACH */
333        ENOTEMPTY,          /* WSAENOTEMPTY */
334        EAGAIN,             /* WSAEPROCLIM */
335        EUSERS,             /* WSAEUSERS */
336        EDQUOT,             /* WSAEDQUOT */
337        ESTALE,             /* WSAESTALE */
338        EREMOTE,            /* WSAEREMOTE */
339    };
340    
341    /*
342     *----------------------------------------------------------------------
343     *
344     * TclWinConvertError --
345     *
346     *      This routine converts a Win32 error into an errno value.
347     *
348     * Results:
349     *      None.
350     *
351     * Side effects:
352     *      Sets the errno global variable.
353     *
354     *----------------------------------------------------------------------
355     */
356    
357    void
358    TclWinConvertError(errCode)
359        DWORD errCode;              /* Win32 error code. */
360    {
361        if (errCode >= tableLen) {
362            Tcl_SetErrno(EINVAL);
363        } else {
364            Tcl_SetErrno(errorTable[errCode]);
365        }
366    }
367    
368    /*
369     *----------------------------------------------------------------------
370     *
371     * TclWinConvertWSAError --
372     *
373     *      This routine converts a WinSock error into an errno value.
374     *
375     * Results:
376     *      None.
377     *
378     * Side effects:
379     *      Sets the errno global variable.
380     *
381     *----------------------------------------------------------------------
382     */
383    
384    void
385    TclWinConvertWSAError(errCode)
386        DWORD errCode;              /* Win32 error code. */
387    {
388        if ((errCode >= WSAEWOULDBLOCK) && (errCode <= WSAEREMOTE)) {
389            Tcl_SetErrno(wsaErrorTable[errCode - WSAEWOULDBLOCK]);
390        } else {
391            Tcl_SetErrno(EINVAL);
392        }
393    }
394    
395    /* End of tclwinerror.c */

Legend:
Removed from v.64  
changed lines
  Added in v.220

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25