Re: 26 ways to set a device driver variable from userland

Christopher Friesen
2005-10-19T18:35:49Z

Kyle Moffett wrote:

>> (4) sysfs

> This is ideal for almost all device driver purposes.

The one thing that I have yet to see a good solution for is
transaction-based operations, where userspace passes in something (could
be a command, a new value, a query, etc.) and expects some data in return.

The ioctl() method is ideal for this, passing down a binary struct with
a command/query member, and the driver fills in the rest of the struct
based on the commnd.

How do you do this cleanly via sysfs? It seems like you either double
the number of syscalls (write to one file, read from another) or else
you need to have sysfs files for every possible query/command, so that
the input becomes implicitly encoded in the file that you are reading.
This could end up creating a large number of files depending on the
range of inputs.

Are there any other standard ways to do this?

Chris