Re: [RFC][PATCH] input: Introduce device information ioctl

From: Kay Sievers
Date: Tue Dec 07 2010 - 07:50:24 EST


On Tue, Dec 7, 2010 at 13:40, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Tuesday 07 December 2010, Kay Sievers wrote:
>> On Tue, Dec 7, 2010 at 10:16, Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote:
>> > Hi Henrik,
>> >
>> > On Tue, Dec 07, 2010 at 08:25:26AM +0100, Henrik Rydberg wrote:
>> >> Today, userspace sets up an input device based on the data it emits.
>> >> This is not always enough; a tablet and a touchscreen may emit exactly
>> >> the same data, for instance, but the former should be set up with a
>> >> pointer whereas the latter does not need to. Recently, a new type of
>> >> touchpad has emerged where the buttons are under the pad, which changes
>> >> handling logic without changing the emitted data. This patch introduces
>> >> a new ioctl, EVIOCGDEVINFO, which allows userspace to extract information
>> >> about the device resulting in proper setup.
>> >
>> > If we agree that the new ioctl is suitable we'llalso need to wireit up
>> > through sysfs. Also, can we keep all definitions to INPUT_ namespace?
>>
>> Please don't add new ioctls which are not extensible. The ioctl should
>> carry the length or the version of the structure it asks for, so it
>> can be extended in the future. Sysfs should be good enough for such
>> interface though.
>
> Please never add any ioctls that have a version or length field!
>
> Ideally ioctls should have only scalar arguments, not structures,
> so I'd recommend splitting it into two, so you can read type and
> capability parameters separately.

Please don't add new ioctls with a single value only. :) That's what
sysfs is for, today.

The problem is that sysfs or ioctls with a single value can not handle
atomic queries of multiple values, and (rightfully) needing that in
some cases is a reason to add an ioctl() instead of sysfs.

Kay
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/