mirror of https://github.com/xqemu/xqemu.git
linux-user: Add support for prctl PR_GET_NAME and PR_SET_NAME
Add support for the prctl options PR_GET_NAME and PR_SET_NAME, which take or return a name in a 16 byte buffer pointed to by arg2. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
1e6722f8b0
commit
db9526b10a
|
@ -7253,6 +7253,30 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#ifdef PR_GET_NAME
|
||||||
|
case PR_GET_NAME:
|
||||||
|
{
|
||||||
|
void *name = lock_user(VERIFY_WRITE, arg2, 16, 1);
|
||||||
|
if (!name) {
|
||||||
|
goto efault;
|
||||||
|
}
|
||||||
|
ret = get_errno(prctl(arg1, (unsigned long)name,
|
||||||
|
arg3, arg4, arg5));
|
||||||
|
unlock_user(name, arg2, 16);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case PR_SET_NAME:
|
||||||
|
{
|
||||||
|
void *name = lock_user(VERIFY_READ, arg2, 16, 1);
|
||||||
|
if (!name) {
|
||||||
|
goto efault;
|
||||||
|
}
|
||||||
|
ret = get_errno(prctl(arg1, (unsigned long)name,
|
||||||
|
arg3, arg4, arg5));
|
||||||
|
unlock_user(name, arg2, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
/* Most prctl options have no pointer arguments */
|
/* Most prctl options have no pointer arguments */
|
||||||
ret = get_errno(prctl(arg1, arg2, arg3, arg4, arg5));
|
ret = get_errno(prctl(arg1, arg2, arg3, arg4, arg5));
|
||||||
|
|
Loading…
Reference in New Issue