-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Tue, 19 Nov 2002 20:06, Ian Molton wrote:
> On Mon, 18 Nov 2002 21:30:29 -0800
>
> Greg KH <[EMAIL PROTECTED]> wrote:
> > > partly because of comments on this list about it being better than
> > > just leaving users to do everything through file i/o :-)
> >
> > Hm, no, not a good idea :)
>
> why do people hate IOCTLs ?
Different people hate them for different reasons. There is a lot to hate :)
1. Some people don't like the lack of portability.
2. Lots of people worry about the way the security aspects. The Stanford
checker is still finding bugs.
3. Architects worry about the ad-hoc nature. Basically, you can just shove an
ioctl() in anywhere, and blow off a proper API. This is the probably the
biggest issue, and you can do _decent_ design with ioctl()s. (You can write
maintainable code in assembler too, however both are pretty rare)
4. Some people don't like the unstructured nature. It is often next to
impossible to tell how you are meant to use the beast, unless you have an
example.
5. The documentation is always terrible.
Here is an example, from <linux/input.h>,(not because it is particularly bad,
but just because I'm familiar with it):
#define EVIOCGREP _IOR('E', 0x03, int[2])
What do you think that does?
Now if you had the comment:
/* get repeat settings */
(which is in the header), do you have any more idea?
How about this one:
#define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len) /* get
all sounds status */
Does that make the problem any clearer?
To be fair to the OP, Greg suggested using usbfs/libusb. That is really only
swapping one set of ioctl()s for another. However at least they are a fairly
well designed set of ioctl()s, and if you use libusb, you are probably
insulated from API changes in the kernel.
- --
http://linux.conf.au. 22-25Jan2003. Perth, Aust. I'm registered. Are you?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE92gvzW6pHgIdAuOMRAuTVAKCaBCLXXFc1zHsr1IjmjwPeklbyEQCeJS0k
TDP2AYHdbMzsFY5Wi4JSXDI=
=b/zR
-----END PGP SIGNATURE-----
-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing
your web site with SSL, click here to get a FREE TRIAL of a Thawte
Server Certificate: http://www.gothawte.com/rd524.html
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel