Le 13/07/2020 à 21:28, Laurent Vivier a écrit : > Le 10/07/2020 à 21:53, Josh Kunz a écrit : >> This change includes most widely-available if_tun ioctls that are >> integer typed. >> >> Tested by compiling all linux-user emulators. This patch has also been >> used successfully to run several binaries that utilize these ioctls for >> several months. >> >> Linux Header: >> https://github.com/torvalds/linux/blob/dcde237b9b0eb1d19306e6f48c0a4e058907619f/include/uapi/linux/if_tun.h#L31 >> >> Signed-off-by: Josh Kunz <j...@google.com> >> --- >> linux-user/ioctls.h | 20 ++++++++++++++++++++ >> linux-user/syscall.c | 1 + >> linux-user/syscall_defs.h | 21 +++++++++++++++++++++ >> 3 files changed, 42 insertions(+) >> >> diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h >> index 0713ae1311..9b4a67fe84 100644 >> --- a/linux-user/ioctls.h >> +++ b/linux-user/ioctls.h >> @@ -593,3 +593,23 @@ >> IOCTL(KCOV_DISABLE, 0, TYPE_NULL) >> IOCTL(KCOV_INIT_TRACE, IOC_R, TYPE_ULONG) >> #endif >> + >> + IOCTL(TUNGETFEATURES , IOC_R , TYPE_INT) >> + IOCTL(TUNGETIFF , IOC_R , TYPE_INT) >> + IOCTL(TUNGETSNDBUF , IOC_R , TYPE_INT) >> + IOCTL(TUNGETVNETHDRSZ , IOC_R , TYPE_INT) >> + IOCTL(TUNGETVNETLE , IOC_R , TYPE_INT) >> + IOCTL(TUNSETDEBUG , IOC_W , TYPE_INT) >> + IOCTL(TUNSETGROUP , IOC_W , TYPE_INT) >> + IOCTL(TUNSETIFF , IOC_W , TYPE_INT) >> + IOCTL(TUNSETIFINDEX , IOC_W , TYPE_INT) >> + IOCTL(TUNSETLINK , IOC_W , TYPE_INT) >> + IOCTL(TUNSETNOCSUM , IOC_W , TYPE_INT) >> + IOCTL(TUNSETOFFLOAD , IOC_W , TYPE_INT) >> + IOCTL(TUNSETOWNER , IOC_W , TYPE_INT) >> + IOCTL(TUNSETPERSIST , IOC_W , TYPE_INT) >> + IOCTL(TUNSETQUEUE , IOC_W , TYPE_INT) >> + IOCTL(TUNSETSNDBUF , IOC_W , TYPE_INT) >> + IOCTL(TUNSETTXFILTER , IOC_W , TYPE_INT) >> + IOCTL(TUNSETVNETHDRSZ , IOC_W , TYPE_INT) >> + IOCTL(TUNSETVNETLE , IOC_W , TYPE_INT) ... >> > > Applied to my linux-user-for-5.1 branch.
This patch fails ioctls03 LTP tests on some archs (s390x for instance), TUNGETFEATURES returns unknown features. Your patch is not correct, definitions should use MK_PTR(...) rather than TYPE_INT (and some of them are not based on int but on more complex structures). Your patch only works with guest with same endianness and word size. I remove it from the queue. Thanks, Laurent