On Tue, May 22, 2001 at 02:22:34AM +0200, Ingo Oeser wrote:
> ioctl has actually 4 semantics:
>
> command only
> command + read
> command + write
> command + rw-transaction
>
> Separating these would be a first step. And yes, I consider each
> of them useful.
>
> command only: reset drive
echo 'reset' >/dev/sg0ctl
> command + rw-transaction: "dear device please mangle this data"
> (crypto processors come to mind...)
I can't think of a reasonable tool-based approach to this, but I can
definitely see that a program could use this well. It simply requires
that you use the filp to store your state.
fd = open(/dev/crypto) -> creates filp
write(fd, "Death to all fanatics!\n"); -> calls crypto device, stores result in
private data structure
sleep(100);
read(fd, "Qrngu gb nyy snangvpf!\n"); -> frees data structure
[You'll note the advanced design of my crypto processor.]
Clearly, this is open to abuse by persons never calling read() and passing in
far too much to write(). I think this can be alleviated by refusing to accept more
than (say) 4k at a time, or bean-counter.
A sick way would be to allow the ->write() call to have its buffer
modified. But I don't think we want to go down that path.
--
Revolutions do not require corporate support.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/