| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/ash/fusebox/fusebox_errno.h" |
| |
| #include <errno.h> |
| |
| #include "base/files/file.h" |
| #include "storage/common/file_system/file_system_util.h" |
| |
| namespace fusebox { |
| |
| int FileErrorToErrno(base::File::Error error) { |
| switch (error) { |
| case base::File::Error::FILE_OK: |
| return 0; |
| case base::File::Error::FILE_ERROR_FAILED: |
| return EFAULT; |
| case base::File::Error::FILE_ERROR_IN_USE: |
| return EBUSY; |
| case base::File::Error::FILE_ERROR_EXISTS: |
| return EEXIST; |
| case base::File::Error::FILE_ERROR_NOT_FOUND: |
| return ENOENT; |
| case base::File::Error::FILE_ERROR_ACCESS_DENIED: |
| return EACCES; |
| case base::File::Error::FILE_ERROR_TOO_MANY_OPENED: |
| return EMFILE; |
| case base::File::Error::FILE_ERROR_NO_MEMORY: |
| return ENOMEM; |
| case base::File::Error::FILE_ERROR_NO_SPACE: |
| return ENOSPC; |
| case base::File::Error::FILE_ERROR_NOT_A_DIRECTORY: |
| return ENOTDIR; |
| case base::File::Error::FILE_ERROR_INVALID_OPERATION: |
| return ENOTSUP; |
| case base::File::Error::FILE_ERROR_SECURITY: |
| return EACCES; |
| case base::File::Error::FILE_ERROR_ABORT: |
| return ENOTSUP; |
| case base::File::Error::FILE_ERROR_NOT_A_FILE: |
| return EINVAL; |
| case base::File::Error::FILE_ERROR_NOT_EMPTY: |
| return ENOTEMPTY; |
| case base::File::Error::FILE_ERROR_INVALID_URL: |
| return EINVAL; |
| case base::File::Error::FILE_ERROR_IO: |
| return EIO; |
| default: |
| return EFAULT; |
| } |
| } |
| |
| int NetErrorToErrno(int error) { |
| return FileErrorToErrno(storage::NetErrorToFileError(error)); |
| } |
| |
| } // namespace fusebox |