linux-user/ppc: Implement swapcontext syscall

This allows the tests generated by debian-powerpc-user-cross
to function properly, especially tests/test-coroutine.

Technically this syscall is available to both ppc32 and ppc64,
but only ppc32 glibc actually uses it.  Thus the ppc64 path is
untested.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20180718200648.22529-1-richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2018-07-18 13:06:48 -07:00 committed by Laurent Vivier
parent 33143c446e
commit fa97e38eed
3 changed files with 64 additions and 0 deletions

View file

@ -12790,6 +12790,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
ret = get_errno(kcmp(arg1, arg2, arg3, arg4, arg5));
break;
#endif
#ifdef TARGET_NR_swapcontext
case TARGET_NR_swapcontext:
/* PowerPC specific. */
ret = do_swapcontext(cpu_env, arg1, arg2, arg3);
break;
#endif
default:
unimplemented: