Hi, Arnd > 在 2015年11月28日,00:58,Arnd Bergmann <a...@arndb.de> 写道: > > On Friday 27 November 2015 18:00:29 WEN Pingbo wrote: >> To solve the y2038 problem in input_event, I had some attempts before [1], >> and this is the second one. >> >> We can force userspace to use monotonic time in event timestamp, so the >> 'struct timeval' is enough to keep y2038-safe, as Arnd suggested. But we >> can not find a way to make kernel compatible with old binaries, which use >> realtime, and there are still some devices, which depend on realtime. >> >> So I get a idea to add a new evdev interface, which is y2038 safe. And >> userspace can switch between the old and new interface via ioctl. >> >> The patch series add three evdev interface type: >> >> - EV_IF_LEGACY >> send event by input_event. This is the default option, keep kernel >> backward compatible. > > The problem I see with this approach is that it still breaks any > legacy source code that is compiled with a new libc that uses 64-bit > time_t. If we are requiring source code changes for building users > of input devices with a new libc, we can easily get them to handle > the overflow (they normally only care about the microsecond portion > anyway, so it doesn't matter in most cases), or to use monotonic time.
I don’t think so. Actually, from the view of userspace, EV_IF_LEGACY interface is work exactly the same as old evdev. We didn’t change anything in input_event and input_event_compat. And the problem you said will still be there, even without those patches. Pingbo-- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html