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

From: Christopher Friesen
Date: Wed Oct 19 2005 - 13:37:59 EST


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
-
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/