Message ID | 1558282527-22183-3-git-send-email-aleksandar.markovic@rt-rk.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | linux-user: A set of miscellaneous patches | expand |
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
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) */