Le 16/01/2020 à 23:49, Aleksandar Markovic a écrit : > From: Aleksandar Markovic <amarko...@wavecomp.com> > > A very specific thing for these two ioctls is that their code > implies that their third argument is of type 'long', but the > kernel uses that argument as if it is of type 'int'. This anomaly > is recognized also in commit 6080723 (linux-user: Implement > FS_IOC_GETFLAGS and FS_IOC_SETFLAGS ioctls). > > Reviewed-by: Laurent Vivier <laur...@vivier.eu> > Signed-off-by: Aleksandar Markovic <amarko...@wavecomp.com> > --- > linux-user/ioctls.h | 2 ++ > linux-user/syscall_defs.h | 8 +++++--- > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h > index c6b9d6a..c44f42e 100644 > --- a/linux-user/ioctls.h > +++ b/linux-user/ioctls.h > @@ -138,6 +138,8 @@ > > IOCTL(FS_IOC_GETFLAGS, IOC_R, MK_PTR(TYPE_INT)) > IOCTL(FS_IOC_SETFLAGS, IOC_W, MK_PTR(TYPE_INT)) > + IOCTL(FS_IOC_GETVERSION, IOC_R, MK_PTR(TYPE_INT)) > + IOCTL(FS_IOC_SETVERSION, IOC_W, MK_PTR(TYPE_INT)) > > #ifdef CONFIG_USBFS > /* USB ioctls */ > diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h > index 98c2119..f68a8b6 100644 > --- a/linux-user/syscall_defs.h > +++ b/linux-user/syscall_defs.h > @@ -911,12 +911,14 @@ struct target_pollfd { > #define TARGET_FICLONE TARGET_IOW(0x94, 9, int) > #define TARGET_FICLONERANGE TARGET_IOW(0x94, 13, struct file_clone_range) > > -/* Note that the ioctl numbers claim type "long" but the actual type > - * used by the kernel is "int". > +/* > + * Note that the ioctl numbers for FS_IOC_<GET|SET><FLAGS|VERSION> > + * claim type "long" but the actual type used by the kernel is "int". > */ > #define TARGET_FS_IOC_GETFLAGS TARGET_IOR('f', 1, abi_long) > #define TARGET_FS_IOC_SETFLAGS TARGET_IOW('f', 2, abi_long) > - > +#define TARGET_FS_IOC_GETVERSION TARGET_IOR('v', 1, abi_long) > +#define TARGET_FS_IOC_SETVERSION TARGET_IOW('v', 2, abi_long) > #define TARGET_FS_IOC_FIEMAP TARGET_IOWR('f',11,struct fiemap) > > /* usb ioctls */ >
Applied to my linux-user branch. Thanks, Laurent