57 lines
1.9 KiB
Diff
57 lines
1.9 KiB
Diff
|
From 72e306e63740a51a1c82f39cabb65df65ce2c215 Mon Sep 17 00:00:00 2001
|
||
|
From: Ulrich Hecht <uli@suse.de>
|
||
|
Date: Tue, 14 Apr 2009 16:30:16 +0200
|
||
|
Subject: [PATCH 10/33] qemu-cvs-sched_getaffinity
|
||
|
|
||
|
Implements sched_getaffinity syscall.
|
||
|
|
||
|
Signed-off-by: Ulrich Hecht <uli@suse.de>
|
||
|
---
|
||
|
linux-user/syscall.c | 16 ++++++++++++++++
|
||
|
1 files changed, 16 insertions(+), 0 deletions(-)
|
||
|
|
||
|
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||
|
index b7230c7..faf41b1 100644
|
||
|
--- a/linux-user/syscall.c
|
||
|
+++ b/linux-user/syscall.c
|
||
|
@@ -152,6 +152,7 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, \
|
||
|
}
|
||
|
|
||
|
|
||
|
+#define __NR_sys_sched_getaffinity __NR_sched_getaffinity
|
||
|
#define __NR_sys_uname __NR_uname
|
||
|
#define __NR_sys_faccessat __NR_faccessat
|
||
|
#define __NR_sys_fchmodat __NR_fchmodat
|
||
|
@@ -213,6 +214,9 @@ _syscall3(int,sys_tgkill,int,tgid,int,pid,int,sig)
|
||
|
#if defined(TARGET_NR_tkill) && defined(__NR_tkill)
|
||
|
_syscall2(int,sys_tkill,int,tid,int,sig)
|
||
|
#endif
|
||
|
+#ifdef __NR_sys_sched_getaffinity
|
||
|
+_syscall3(int,sys_sched_getaffinity,pid_t,pid,unsigned int,cpusetsize,void*,mask)
|
||
|
+#endif
|
||
|
#ifdef __NR_exit_group
|
||
|
_syscall1(int,exit_group,int,error_code)
|
||
|
#endif
|
||
|
@@ -6979,6 +6983,18 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||
|
break;
|
||
|
#endif
|
||
|
#endif /* CONFIG_SPLICE */
|
||
|
+
|
||
|
+#ifdef TARGET_NR_sched_getaffinity
|
||
|
+ case TARGET_NR_sched_getaffinity:
|
||
|
+ {
|
||
|
+ cpu_set_t *mask;
|
||
|
+ lock_user_struct(VERIFY_READ, mask, arg3, 1);
|
||
|
+ ret = get_errno(sys_sched_getaffinity((pid_t)arg1, (unsigned int)arg2, mask));
|
||
|
+ unlock_user_struct(mask, arg3, 0);
|
||
|
+ break;
|
||
|
+ }
|
||
|
+#endif
|
||
|
+
|
||
|
default:
|
||
|
unimplemented:
|
||
|
gemu_log("qemu: Unsupported syscall: %d\n", num);
|
||
|
--
|
||
|
1.6.2.1
|
||
|
|