On 19/05/2019 18:15, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Fix support for the SIOCATMARK and SIOCGPGRP ioctls for xtensa by
> correcting corresponding macro definition.
>
> Values for TARGET_SIOCATMARK and TARGET_SIOCGPGRP are determined by
> Linux kernel. Following relevant lines (obtained by grep) are from
> the kernel source tree:
>
> arch/ia64/include/uapi/asm/sockios.h:#define SIOCATMARK 0x8905
> arch/mips/include/uapi/asm/sockios.h:#define SIOCATMARK _IOR('s', 7, int)
> arch/parisc/include/uapi/asm/sockios.h:#define SIOCATMARK 0x8905
> arch/sh/include/uapi/asm/sockios.h:#define SIOCATMARK _IOR('s', 7, int)
> arch/xtensa/include/uapi/asm/sockios.h:#define SIOCATMARK _IOR('s', 7, int)
> arch/alpha/include/uapi/asm/sockios.h:#define SIOCATMARK _IOR('s', 7, int)
> arch/sparc/include/uapi/asm/sockios.h:#define SIOCATMARK 0x8905
> include/uapi/asm-generic/sockios.h:#define SIOCATMARK 0x8905
>
> arch/ia64/include/uapi/asm/sockios.h:#define SIOCGPGRP 0x8904
> arch/mips/include/uapi/asm/sockios.h:#define SIOCGPGRP _IOR('s', 9, pid_t)
> arch/parisc/include/uapi/asm/sockios.h:#define SIOCGPGRP 0x8904
> arch/sh/include/uapi/asm/sockios.h:#define SIOCGPGRP _IOR('s', 9, pid_t)
> arch/xtensa/include/uapi/asm/sockios.h:#define SIOCGPGRP _IOR('s', 9, pid_t)
> arch/alpha/include/uapi/asm/sockios.h:#define SIOCGPGRP _IOR('s', 9, pid_t)
> arch/sparc/include/uapi/asm/sockios.h:#define SIOCGPGRP 0x8904
> include/uapi/asm-generic/sockios.h:#define SIOCGPGRP 0x8904
>
> It is visible from above that xtensa should have the same definitions
> as alpha, mips and sh4 already do. This patch brings QEMU to the accurate
> state wrt these two ioctls.
>
> Acked-by: Max Filippov <jcmvbkbc@gmail.com>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> Reviewed-by: Laurent Vivier <laurent@vivier.eu>
> ---
> linux-user/syscall_defs.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> index 12c8407..1e86fb9 100644
> --- a/linux-user/syscall_defs.h
> +++ b/linux-user/syscall_defs.h
> @@ -736,7 +736,8 @@ struct target_pollfd {
> #define TARGET_KDSETLED 0x4B32 /* set led state [lights, not flags] */
> #define TARGET_KDSIGACCEPT 0x4B4E
>
> -#if defined(TARGET_ALPHA) || defined(TARGET_MIPS) || defined(TARGET_SH4)
> +#if defined(TARGET_ALPHA) || defined(TARGET_MIPS) || defined(TARGET_SH4) || \
> + defined(TARGET_XTENSA)
> #define TARGET_SIOCATMARK TARGET_IOR('s', 7, int)
> #define TARGET_SIOCGPGRP TARGET_IOR('s', 9, pid_t)
> #else
>
Applied to my linux-user branch.
Thanks,
Laurent