linux-user: add kcmp() syscall
diff mbox

Message ID 1475758564-4449-1-git-send-email-laurent@vivier.eu
State New
Headers show

Commit Message

Laurent Vivier Oct. 6, 2016, 12:56 p.m. UTC
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 linux-user/syscall.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Peter Maydell Oct. 6, 2016, 1:19 p.m. UTC | #1
On 6 October 2016 at 13:56, Laurent Vivier <laurent@vivier.eu> wrote:
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
>  linux-user/syscall.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index d21d901..a32386e 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -304,6 +304,11 @@ _syscall3(int, ioprio_set, int, which, int, who, int, ioprio)
>  _syscall3(int, getrandom, void *, buf, size_t, buflen, unsigned int, flags)
>  #endif
>
> +#if defined(TARGET_NR_kcmp) && defined(__NR_kcmp)
> +_syscall5(int, kcmp, pid_t, pid1, pid_t, pid2, int, type,
> +          unsigned long, idx1, unsigned long, idx2)
> +#endif
> +
>  static bitmask_transtbl fcntl_flags_tbl[] = {
>    { TARGET_O_ACCMODE,   TARGET_O_WRONLY,    O_ACCMODE,   O_WRONLY,    },
>    { TARGET_O_ACCMODE,   TARGET_O_RDWR,      O_ACCMODE,   O_RDWR,      },
> @@ -11943,6 +11948,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
>          ret = get_errno(unshare(arg1));
>          break;
>  #endif
> +#if defined(TARGET_NR_kcmp) && defined(__NR_kcmp)
> +    case TARGET_NR_kcmp:
> +        ret = get_errno(kcmp(arg1, arg2, arg3, arg4, arg5));
> +        break;
> +#endif
>
>      default:
>      unimplemented:

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM

Patch
diff mbox

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index d21d901..a32386e 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -304,6 +304,11 @@  _syscall3(int, ioprio_set, int, which, int, who, int, ioprio)
 _syscall3(int, getrandom, void *, buf, size_t, buflen, unsigned int, flags)
 #endif
 
+#if defined(TARGET_NR_kcmp) && defined(__NR_kcmp)
+_syscall5(int, kcmp, pid_t, pid1, pid_t, pid2, int, type,
+          unsigned long, idx1, unsigned long, idx2)
+#endif
+
 static bitmask_transtbl fcntl_flags_tbl[] = {
   { TARGET_O_ACCMODE,   TARGET_O_WRONLY,    O_ACCMODE,   O_WRONLY,    },
   { TARGET_O_ACCMODE,   TARGET_O_RDWR,      O_ACCMODE,   O_RDWR,      },
@@ -11943,6 +11948,11 @@  abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
         ret = get_errno(unshare(arg1));
         break;
 #endif
+#if defined(TARGET_NR_kcmp) && defined(__NR_kcmp)
+    case TARGET_NR_kcmp:
+        ret = get_errno(kcmp(arg1, arg2, arg3, arg4, arg5));
+        break;
+#endif
 
     default:
     unimplemented: