[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 15/19] hw/9pfs: Translate Windows errno to Linux value
From: |
Bin Meng |
Subject: |
[PATCH v2 15/19] hw/9pfs: Translate Windows errno to Linux value |
Date: |
Fri, 11 Nov 2022 12:22:21 +0800 |
From: Guohuai Shi <guohuai.shi@windriver.com>
Some of Windows error numbers have different value from Linux ones.
For example, ENOTEMPTY is defined to 39 in Linux, but is defined to
41 in Windows. So deleting a directory from a Linux guest on top
of QEMU from a Windows host complains:
# rmdir tmp
rmdir: 'tmp': Unknown error 41
This commit provides error number translation from Windows to Linux.
It can make Linux guest OS happy with the error number when running
on top of QEMU from a Windows host.
Signed-off-by: Guohuai Shi <guohuai.shi@windriver.com>
Signed-off-by: Bin Meng <bin.meng@windriver.com>
---
(no changes since v1)
hw/9pfs/9p-util.h | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/hw/9pfs/9p-util.h b/hw/9pfs/9p-util.h
index c76a53f2a8..598e2980e1 100644
--- a/hw/9pfs/9p-util.h
+++ b/hw/9pfs/9p-util.h
@@ -67,9 +67,9 @@ static inline int errno_to_dotl(int err)
{
#if defined(CONFIG_LINUX)
/* nothing to translate (Linux -> Linux) */
-#elif defined(CONFIG_DARWIN)
+#elif defined(CONFIG_DARWIN) || defined(CONFIG_WIN32)
/*
- * translation mandatory for macOS hosts
+ * translation mandatory for different hosts
*
* FIXME: Only most important errnos translated here yet, this should be
* extended to as many errnos being translated as possible in future.
@@ -78,9 +78,17 @@ static inline int errno_to_dotl(int err)
case ENAMETOOLONG: return L_ENAMETOOLONG;
case ENOTEMPTY: return L_ENOTEMPTY;
case ELOOP: return L_ELOOP;
+#ifdef CONFIG_DARWIN
case ENOATTR: return L_ENODATA;
case ENOTSUP return L_EOPNOTSUPP;
case EOPNOTSUPP: return L_EOPNOTSUPP;
+#endif
+#ifdef CONFIG_WIN32
+ case EDEADLK: return L_EDEADLK;
+ case ENOLCK: return L_ENOLCK;
+ case ENOSYS: return L_ENOSYS;
+ case EILSEQ: return L_EILSEQ;
+#endif
default: g_assert_not_reached();
}
#else
--
2.25.1
- RE: [PATCH v2 07/19] hw/9pfs: Implement Windows specific utilities functions for 9pfs, (continued)
- [PATCH v2 01/19] qemu/xattr.h: Exclude <sys/xattr.h> for Windows, Bin Meng, 2022/11/10
- [PATCH v2 10/19] hw/9pfs: Add a helper qemu_stat_rdev(), Bin Meng, 2022/11/10
- [PATCH v2 09/19] hw/9pfs: Support getting current directory offset for Windows, Bin Meng, 2022/11/10
- [PATCH v2 11/19] hw/9pfs: Add a helper qemu_stat_blksize(), Bin Meng, 2022/11/10
- [PATCH v2 13/19] hw/9pfs: Update v9fs_set_fd_limit() for Windows, Bin Meng, 2022/11/10
- [PATCH v2 12/19] hw/9pfs: Disable unsupported flags and features for Windows, Bin Meng, 2022/11/10
- [PATCH v2 18/19] tests/qtest: virtio-9p-test: Adapt the case for win32, Bin Meng, 2022/11/10
- [PATCH v2 14/19] hw/9pfs: Add Linux error number definition, Bin Meng, 2022/11/10
- [PATCH v2 15/19] hw/9pfs: Translate Windows errno to Linux value,
Bin Meng <=
- [PATCH v2 17/19] hw/9pfs: Update synth fs driver for Windows, Bin Meng, 2022/11/10
- [PATCH v2 16/19] fsdev: Disable proxy fs driver on Windows, Bin Meng, 2022/11/10
- [PATCH v2 19/19] meson.build: Turn on virtfs for Windows, Bin Meng, 2022/11/10