aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Vivier <laurent@vivier.eu>2016-09-25 22:20:20 +0200
committerRiku Voipio <riku.voipio@linaro.org>2016-10-21 15:19:40 +0300
commit2f14788c542fcdc7fc2eb4a93db7facb39c43463 (patch)
tree9c54feee93337c0266d1d4ca81f9c8bae95484aa
parenta7c65cbfe707aba92511bd63540a2be069bf9ffc (diff)
linux-user: add kcmp() syscall
Signed-off-by: Laurent Vivier <laurent@vivier.eu> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
-rw-r--r--linux-user/syscall.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index eb904012fa..beeb23d5dc 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -305,6 +305,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, },
@@ -12080,6 +12085,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: