Index: qemu.bkp/linux-user/syscall.c ================================================================================ --- qemu/linux-user/syscall.c +++ qemu/linux-user/syscall.c @@ -163,6 +163,7 @@ #define __NR_sys_unlinkat __NR_unlinkat #define __NR_sys_utimensat __NR_utimensat #define __NR_sys_clone __NR_clone +#define __NR_sys_sched_getaffinity __NR_sched_getaffinity #if defined(__alpha__) || defined (__ia64__) || defined(__x86_64__) #define __NR__llseek __NR_lseek @@ -234,6 +235,9 @@ #ifdef __NR_sys_clone _syscall5(int,sys_clone, int, flags, void *, child_stack, int *, parent_tidptr, void *, newtls, int *, child_tidptr) #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 @@ -5254,6 +5258,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);