[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 3/9] linux-user: Add move_mount() syscall
From: |
Laurent Vivier |
Subject: |
[PULL 3/9] linux-user: Add move_mount() syscall |
Date: |
Wed, 17 May 2023 10:01:46 +0200 |
From: Thomas Weißschuh <thomas@t-8ch.de>
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
[lv: define syscall]
Message-Id: <20230424153429.276788-1-thomas@t-8ch.de>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/syscall.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 954ed14df4c0..9a99e4557367 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8776,6 +8776,12 @@ static int do_getdents64(abi_long dirfd, abi_long arg2,
abi_long count)
_syscall2(int, pivot_root, const char *, new_root, const char *, put_old)
#endif
+#if defined(TARGET_NR_move_mount) && defined(__NR_move_mount)
+#define __NR_sys_move_mount __NR_move_mount
+_syscall5(int, sys_move_mount, int, __from_dfd, const char *, __from_pathname,
+ int, __to_dfd, const char *, __to_pathname, unsigned int, flag)
+#endif
+
/* This is an internal helper for do_syscall so that it is easier
* to have a single return point, so that actions, such as logging
* of syscall results, can be performed.
@@ -9169,6 +9175,33 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int
num, abi_long arg1,
unlock_user(p, arg1, 0);
return ret;
#endif
+#if defined(TARGET_NR_move_mount) && defined(__NR_move_mount)
+ case TARGET_NR_move_mount:
+ {
+ void *p2, *p4;
+
+ if (!arg2 || !arg4) {
+ return -TARGET_EFAULT;
+ }
+
+ p2 = lock_user_string(arg2);
+ if (!p2) {
+ return -TARGET_EFAULT;
+ }
+
+ p4 = lock_user_string(arg4);
+ if (!p4) {
+ unlock_user(p2, arg2, 0);
+ return -TARGET_EFAULT;
+ }
+ ret = get_errno(sys_move_mount(arg1, p2, arg3, p4, arg5));
+
+ unlock_user(p2, arg2, 0);
+ unlock_user(p4, arg4, 0);
+
+ return ret;
+ }
+#endif
#ifdef TARGET_NR_stime /* not on alpha */
case TARGET_NR_stime:
{
--
2.40.1
- [PULL 5/9] linux-user/main: Use list_cpus() instead of cpu_list(), (continued)
- [PULL 0/9] Linux user for 8.1 patches, Laurent Vivier, 2023/05/17
- [PULL 2/9] linux-user: report ENOTTY for unknown ioctls, Laurent Vivier, 2023/05/17
- [PULL 7/9] linux-user: Don't require PROT_READ for mincore, Laurent Vivier, 2023/05/17
- [PULL 9/9] linux-user: fix getgroups/setgroups allocations, Laurent Vivier, 2023/05/17
- [PULL 4/9] linux-user: Add open_tree() syscall, Laurent Vivier, 2023/05/17
- [PULL 3/9] linux-user: Add move_mount() syscall,
Laurent Vivier <=
- [PULL 5/9] linux-user/main: Use list_cpus() instead of cpu_list(), Laurent Vivier, 2023/05/17
- [PULL 8/9] linux-user: Fix mips fp64 executables loading, Laurent Vivier, 2023/05/17
- [PULL 6/9] linux-user: Add new flag VERIFY_NONE, Laurent Vivier, 2023/05/17
- [PULL 1/9] linux-user: Emulate /proc/cpuinfo output for riscv, Laurent Vivier, 2023/05/17
- Re: [PULL 0/9] Linux user for 8.1 patches, Richard Henderson, 2023/05/17