Message ID | 20190711171556.3377-1-laurent@vivier.eu |
---|---|
State | New |
Headers | show |
Series | [v3] linux-user: fix to handle variably sized SIOCGSTAMP with new kernels | expand |
Le 11/07/2019 à 19:15, Laurent Vivier a écrit : > diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h > index b98a23b0f1b0..584087301edc 100644 > --- a/linux-user/syscall_types.h > +++ b/linux-user/syscall_types.h > @@ -20,6 +20,12 @@ STRUCT(timeval, > STRUCT(timespec, > MK_ARRAY(TYPE_LONG, 2)) > > +STRUCT(timeval64, > + MK_ARRAY(TYPE_LONGLONG, 2)) > + > +STRUCT(timespec64, > + MK_ARRAY(TYPE_LONGLONG, 2)) > + kernel type is: typedef __s64 time64_t; struct timespec64 { time64_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; So the definitions from v2 were good: STRUCT(timeval64, TYPE_LONGLONG, TYPE_LONG) STRUCT(timespec64, TYPE_LONGLONG, TYPE_LONG) kernel uses the same type for timeval and timespec. I send a v4. Thanks, Laurent
Patchew URL: https://patchew.org/QEMU/20190711171556.3377-1-laurent@vivier.eu/ Hi, This series seems to have some coding style problems. See output below for more information: Message-id: 20190711171556.3377-1-laurent@vivier.eu Type: series Subject: [Qemu-devel] [PATCH v3] linux-user: fix to handle variably sized SIOCGSTAMP with new kernels === TEST SCRIPT BEGIN === #!/bin/bash git rev-parse base > /dev/null || exit 0 git config --local diff.renamelimit 0 git config --local diff.renames True git config --local diff.algorithm histogram ./scripts/checkpatch.pl --mailback base.. === TEST SCRIPT END === Switched to a new branch 'test' 8b65b462cd linux-user: fix to handle variably sized SIOCGSTAMP with new kernels === OUTPUT BEGIN === ERROR: line over 90 characters #79: FILE: linux-user/syscall_defs.h:756: +#define TARGET_SIOCGSTAMP_NEW TARGET_IOR(0x89, 0x06, abi_llong[2]) /* Get stamp (timeval64) */ ERROR: line over 90 characters #80: FILE: linux-user/syscall_defs.h:757: +#define TARGET_SIOCGSTAMPNS_NEW TARGET_IOR(0x89, 0x07, abi_llong[2]) /* Get stamp (timespec64) */ total: 2 errors, 0 warnings, 52 lines checked Commit 8b65b462cd5f (linux-user: fix to handle variably sized SIOCGSTAMP with new kernels) has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. === OUTPUT END === Test command exited with code: 1 The full log is available at http://patchew.org/logs/20190711171556.3377-1-laurent@vivier.eu/testing.checkpatch/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 5e84dc7c3a77..5a6d6def7e3f 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -222,8 +222,23 @@ 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 */ + +#ifdef SIOCGSTAMP_OLD + IOCTL(SIOCGSTAMP_OLD, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval))) +#else IOCTL(SIOCGSTAMP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval))) +#endif +#ifdef SIOCGSTAMPNS_OLD + IOCTL(SIOCGSTAMPNS_OLD, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec))) +#else IOCTL(SIOCGSTAMPNS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec))) +#endif +#ifdef SIOCGSTAMP_NEW + IOCTL(SIOCGSTAMP_NEW, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval64))) +#endif +#ifdef SIOCGSTAMPNS_NEW + IOCTL(SIOCGSTAMPNS_NEW, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec64))) +#endif IOCTL(RNDGETENTCNT, IOC_R, MK_PTR(TYPE_INT)) IOCTL(RNDADDTOENTCNT, IOC_W, MK_PTR(TYPE_INT)) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 39a37496fed5..aa18ac4b2389 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -37,6 +37,7 @@ #include <sched.h> #include <sys/timex.h> #include <sys/socket.h> +#include <linux/sockios.h> #include <sys/un.h> #include <sys/uio.h> #include <poll.h> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index fffa89f2564b..e0326923a018 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -751,6 +751,10 @@ struct target_pollfd { #define TARGET_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ #define TARGET_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ +#define TARGET_SIOCGSTAMP_OLD 0x8906 /* Get stamp (timeval) */ +#define TARGET_SIOCGSTAMPNS_OLD 0x8907 /* Get stamp (timespec) */ +#define TARGET_SIOCGSTAMP_NEW TARGET_IOR(0x89, 0x06, abi_llong[2]) /* Get stamp (timeval64) */ +#define TARGET_SIOCGSTAMPNS_NEW TARGET_IOR(0x89, 0x07, abi_llong[2]) /* Get stamp (timespec64) */ /* Networking ioctls */ #define TARGET_SIOCADDRT 0x890B /* add routing table entry */ diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h index b98a23b0f1b0..584087301edc 100644 --- a/linux-user/syscall_types.h +++ b/linux-user/syscall_types.h @@ -20,6 +20,12 @@ STRUCT(timeval, STRUCT(timespec, MK_ARRAY(TYPE_LONG, 2)) +STRUCT(timeval64, + MK_ARRAY(TYPE_LONGLONG, 2)) + +STRUCT(timespec64, + MK_ARRAY(TYPE_LONGLONG, 2)) + STRUCT(rtentry, TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,