* error.[ch]: added _wapi_get_win32_file_error...
* io.c: ... which was _wapi_get_win32_error here.
* sockets.c: rename the function calls here too.
svn path=/trunk/mono/; revision=26146
+2004-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * error.[ch]: added _wapi_get_win32_file_error...
+ * io.c: ... which was _wapi_get_win32_error here.
+ * sockets.c: rename the function calls here too.
+
2004-04-28 Dick Porter <dick@ximian.com>
* daemon-messages.c: Avoid a deadlock when a thread is killed while
return result;
}
+gint
+_wapi_get_win32_file_error (gint err)
+{
+ gint ret;
+ /* mapping ideas borrowed from wine. they may need some work */
+
+ switch (err) {
+ case EACCES: case EPERM: case EROFS:
+ ret = ERROR_ACCESS_DENIED;
+ break;
+
+ case EAGAIN:
+ ret = ERROR_SHARING_VIOLATION;
+ break;
+
+ case EBUSY:
+ ret = ERROR_LOCK_VIOLATION;
+ break;
+
+ case EEXIST:
+ ret = ERROR_FILE_EXISTS;
+ break;
+
+ case EINVAL: case ESPIPE:
+ ret = ERROR_SEEK;
+ break;
+
+ case EISDIR:
+ ret = ERROR_CANNOT_MAKE;
+ break;
+
+ case ENFILE: case EMFILE:
+ ret = ERROR_NO_MORE_FILES;
+ break;
+
+ case ENOENT: case ENOTDIR:
+ ret = ERROR_FILE_NOT_FOUND;
+ break;
+
+ case ENOSPC:
+ ret = ERROR_HANDLE_DISK_FULL;
+ break;
+
+ case ENOTEMPTY:
+ ret = ERROR_DIR_NOT_EMPTY;
+ break;
+
+ case ENOEXEC:
+ ret = ERROR_BAD_FORMAT;
+ break;
+
+ case ENAMETOOLONG:
+ ret = ERROR_FILENAME_EXCED_RANGE;
+ break;
+
+ case EINPROGRESS:
+ ret = ERROR_IO_PENDING;
+ break;
+
+ case ENOSYS:
+ ret = ERROR_NOT_SUPPORTED;
+ break;
+
+ default:
+ g_message ("Unknown errno: %s\n", strerror (err));
+ ret = ERROR_GEN_FAILURE;
+ break;
+ }
+
+ return ret;
+}
+
ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME = 14080
} WapiError;
-extern guint32 GetLastError(void);
-extern void SetLastError(guint32 code);
-extern guint32 errno_to_WSA (guint32 code, const char *function_name);
+G_BEGIN_DECLS
+
+guint32 GetLastError (void);
+void SetLastError (guint32 code);
+guint32 errno_to_WSA (guint32 code, const char *function_name);
+gint _wapi_get_win32_file_error (gint err);
+
+G_END_DECLS
#endif /* _WAPI_ERROR_H_ */
return attrs;
}
-static int
-_wapi_get_win32_error (int err)
-{
- int ret;
- /* mapping ideas borrowed from wine. they may need some work */
-
- switch (err) {
- case EACCES: case EPERM: case EROFS:
- ret = ERROR_ACCESS_DENIED;
- break;
-
- case EAGAIN:
- ret = ERROR_SHARING_VIOLATION;
- break;
-
- case EBUSY:
- ret = ERROR_LOCK_VIOLATION;
- break;
-
- case EEXIST:
- ret = ERROR_FILE_EXISTS;
- break;
-
- case EINVAL: case ESPIPE:
- ret = ERROR_SEEK;
- break;
-
- case EISDIR:
- ret = ERROR_CANNOT_MAKE;
- break;
-
- case ENFILE: case EMFILE:
- ret = ERROR_NO_MORE_FILES;
- break;
-
- case ENOENT: case ENOTDIR:
- ret = ERROR_FILE_NOT_FOUND;
- break;
-
- case ENOSPC:
- ret = ERROR_HANDLE_DISK_FULL;
- break;
-
- case ENOTEMPTY:
- ret = ERROR_DIR_NOT_EMPTY;
- break;
-
- case ENOEXEC:
- ret = ERROR_BAD_FORMAT;
- break;
-
- case ENAMETOOLONG:
- ret = ERROR_FILENAME_EXCED_RANGE;
- break;
-
- case EINPROGRESS:
- ret = ERROR_IO_PENDING;
- break;
-
- case ENOSYS:
- ret = ERROR_NOT_SUPPORTED;
- break;
-
- default:
- g_message ("Unknown errno: %s\n", strerror (err));
- ret = ERROR_GEN_FAILURE;
- break;
- }
-
- return ret;
-}
-
static void
_wapi_set_last_error_from_errno (void)
{
- SetLastError (_wapi_get_win32_error (errno));
+ SetLastError (_wapi_get_win32_file_error (errno));
}
/* Handle ops.
error = aio_return (ndata->aio);
if (error < 0) {
- error = _wapi_get_win32_error (error);
+ error = _wapi_get_win32_file_error (error);
numbytes = 0;
} else {
numbytes = error;
": read of handle %p fd %d error: %s", handle,
file_private_handle->fd, strerror(err));
#endif
- SetLastError (_wapi_get_win32_error (err));
+ SetLastError (_wapi_get_win32_file_error (err));
return(FALSE);
}
error = aio_return (ndata->aio);
if (error < 0) {
- error = _wapi_get_win32_error (error);
+ error = _wapi_get_win32_file_error (error);
numbytes = 0;
} else {
numbytes = error;