Re: f_ops flag to speed up compatible ioctls in linux kernel

filia
2004-09-01T10:17:23Z

Arjan van de Ven writes:

> On Wed, Sep 01, 2004 at 03:50:11AM -0600, filia@softhome.net wrote:
>> Hi!
>>
>> Stop being arrogant.
>> Can you please elaborate on how to make Linux kernel support e.g. motion
>> controllers? They do not fit *any* known to me driver interface. They have
>> several axes, they have about twenty parameters (float or integer), and
>
> parameters nicely fit in sysfs.
>

What about errors?
"set di 200000" might fail for lots of reasons.

>> they have several commands, a-la start, graceful stop, abrupt stop. Plus
>> obviously diagnostics - about ten another commands with absolutely
>> different parameters. And about ten motion monitoring commands. And this is
>> one example I were need to program.
>
> a write() interface doesn't work???
> Hard to believe, you even call them commands.
> fd = open("/dev/funkydevice");
> write(fd, "start");
>
> doesn't sound insane to me
>

it doesn't, since you didn't tryed to make error handling. every thing can
fail - this is control of mechanics - and it fails often and for a lot of
reasons. Put here error handling (write(struct whatever) has to return
another struct whatever2 filled with error description) and thread-safeness.
Pluss some controllers do support multi-dimensional movements "start
x,y,z,etc" - and you might have _several_ error structs. Atomicity is
important for multi-dimensional moves too - move on given axes starts with
single command.

hu?

I do not see much point in renaming ioctl() to write() all over the place -
at least when people see ioctl() they understand that it is not standard
functionality. write() will for sure confuse a lot of people.

--- with respect. best regards.
*** Philips @ Saarbruecken.