Re: best way to access device driver functions

From: Nix
Date: Fri Sep 16 2005 - 07:59:54 EST


On 15 Sep 2005, Fawad Lateef stated:
> On 9/15/05, Ivan Korzakow <ivan.korzakow@xxxxxxxxx> wrote:
>> Could you explain me why ioctl should be avoided ? Is it going to be
>> deprecated in future kernel ?
>
> No ioctl are not deprecated, but they are just avoided b/c its not
> good to mess kernel with new system-calls as there is a different way
> for that !!!!

Well, not really; ioctl() is only one system call. They're actually
avoided because ioctl() has a horrible non-typesafe non-transparent
interface. (Quick! What parameters does the CCISS_PASSTHRU32 ioctl()
expect?)

sysfs fixes all of these problems, and adds easy scriptability
and interrogation from the command-line and a nice hierarchy
as well.


New *system calls* are generally avoided (especially if they might be
useful to non-privileged code) because they come with a *very* high
backward compatibility burden: it's pretty much the case that syscalls
that normal programs rely on should never go away. (Syscalls used only
by programs that you expect to change with the kernel, like modutils/
module-init-tools, are a special case.)

--
`One cannot, after all, be expected to read every single word
of a book whose author one wishes to insult.' --- Richard Dawkins
-
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/