On 19/05/2019 18:15, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <amarkovic@wavecomp.com>
>
> Add support for setting the process (or process group) to receive SIGIO
> or SIGURG signals when I/O becomes possible or urgent data is available,
> using SIOCSPGRP ioctl.
>
> The ioctl numeric values for SIOCSPGRP are platform-dependent and are
> determined by following files in Linux kernel source tree:
>
> arch/ia64/include/uapi/asm/sockios.h:#define SIOCSPGRP 0x8902
> arch/mips/include/uapi/asm/sockios.h:#define SIOCSPGRP _IOW('s', 8, pid_t)
> arch/parisc/include/uapi/asm/sockios.h:#define SIOCSPGRP 0x8902
> arch/sh/include/uapi/asm/sockios.h:#define SIOCSPGRP _IOW('s', 8, pid_t)
> arch/xtensa/include/uapi/asm/sockios.h:#define SIOCSPGRP _IOW('s', 8, pid_t)
> arch/alpha/include/uapi/asm/sockios.h:#define SIOCSPGRP _IOW('s', 8, pid_t)
> arch/sparc/include/uapi/asm/sockios.h:#define SIOCSPGRP 0x8902
> include/uapi/asm-generic/sockios.h:#define SIOCSPGRP 0x8902
>
> Hence the different definition for alpha, mips, sh4, and xtensa.
>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> Reviewed-by: Max Filippov <jcmvbkbc@gmail.com>
> Reviewed-by: Laurent Vivier <laurent@vivier.eu>
> ---
> linux-user/ioctls.h | 1 +
> linux-user/syscall_defs.h | 3 +++
> 2 files changed, 4 insertions(+)
>
> diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
> index ae89516..c37adc5 100644
> --- a/linux-user/ioctls.h
> +++ b/linux-user/ioctls.h
> @@ -218,6 +218,7 @@
> IOCTL(SIOCSRARP, IOC_W, MK_PTR(MK_STRUCT(STRUCT_arpreq)))
> IOCTL(SIOCGRARP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_arpreq)))
> IOCTL(SIOCGIWNAME, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_char_ifreq)))
> + IOCTL(SIOCSPGRP, IOC_W, MK_PTR(TYPE_INT)) /* pid_t */
> IOCTL(SIOCGPGRP, IOC_R, MK_PTR(TYPE_INT)) /* pid_t */
> IOCTL(SIOCGSTAMP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval)))
> IOCTL(SIOCGSTAMPNS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec)))
> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> index 1e86fb9..2941231 100644
> --- a/linux-user/syscall_defs.h
> +++ b/linux-user/syscall_defs.h
> @@ -739,11 +739,14 @@ struct target_pollfd {
> #if defined(TARGET_ALPHA) || defined(TARGET_MIPS) || defined(TARGET_SH4) || \
> defined(TARGET_XTENSA)
> #define TARGET_SIOCATMARK TARGET_IOR('s', 7, int)
> +#define TARGET_SIOCSPGRP TARGET_IOW('s', 8, pid_t)
> #define TARGET_SIOCGPGRP TARGET_IOR('s', 9, pid_t)
> #else
> #define TARGET_SIOCATMARK 0x8905
> +#define TARGET_SIOCSPGRP 0x8902
> #define TARGET_SIOCGPGRP 0x8904
> #endif
> +
> #define TARGET_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
> #define TARGET_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
>
>
Applied to my linux-user branch.
Thanks,
Laurent