linux-user: Add getcpu() support
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <20180112081435.21299-1-samuel.thibault@ens-lyon.org> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
444cd5c3ae
commit
b827c3ed30
@ -296,6 +296,8 @@ _syscall3(int, sys_sched_getaffinity, pid_t, pid, unsigned int, len,
|
||||
#define __NR_sys_sched_setaffinity __NR_sched_setaffinity
|
||||
_syscall3(int, sys_sched_setaffinity, pid_t, pid, unsigned int, len,
|
||||
unsigned long *, user_mask_ptr);
|
||||
#define __NR_sys_getcpu __NR_getcpu
|
||||
_syscall3(int, sys_getcpu, unsigned *, cpu, unsigned *, node, void *, tcache);
|
||||
_syscall4(int, reboot, int, magic1, int, magic2, unsigned int, cmd,
|
||||
void *, arg);
|
||||
_syscall2(int, capget, struct __user_cap_header_struct *, header,
|
||||
@ -10491,6 +10493,23 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
ret = get_errno(sys_sched_setaffinity(arg1, mask_size, mask));
|
||||
}
|
||||
break;
|
||||
case TARGET_NR_getcpu:
|
||||
{
|
||||
unsigned cpu, node;
|
||||
ret = get_errno(sys_getcpu(arg1 ? &cpu : NULL,
|
||||
arg2 ? &node : NULL,
|
||||
NULL));
|
||||
if (is_error(ret)) {
|
||||
goto fail;
|
||||
}
|
||||
if (arg1 && put_user_u32(cpu, arg1)) {
|
||||
goto efault;
|
||||
}
|
||||
if (arg2 && put_user_u32(node, arg2)) {
|
||||
goto efault;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case TARGET_NR_sched_setparam:
|
||||
{
|
||||
struct sched_param *target_schp;
|
||||
|
Loading…
Reference in New Issue
Block a user