File qemu-cvs-sched_getaffinity.patch of Package qemu

Index: qemu.bkp/linux-user/syscall.c
================================================================================
--- qemu-0.10.1/linux-user/syscall.c
+++ qemu-0.10.1/linux-user/syscall.c
@@ -157,6 +157,7 @@
 
 
 #define __NR_sys_exit __NR_exit
+#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
@@ -265,6 +266,9 @@
 #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
@@ -6090,6 +6094,17 @@
         break;
 #endif
 
+#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);
openSUSE Build Service is sponsored by