Re: [Linux-usb-users] Re: USB API, ioctl's and libusb

From: DervishD
Date: Wed Jan 26 2005 - 19:29:50 EST


Hi Alan :)
* Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> dixit:
> > BTW, and judging from the program I've read, there are lots of
> > operations that must be done using 'usb_control_msg', and libusb
> > implements that function with exactly the same interface as the
> > kernel. The only difference is that libusb uses ioctl and the kernel
> > implements the function using URB's. IMHO libusb doesn't provide a
> > cleaner API, the only advantage of libusb is portability. Anyway,
> > I've not used it enough to judge, I'm more concerned about kernel USB
> > interface, not libusb one.
> You don't seem to understand the difference between a kernel API and a
> user API. Only code that is part of the kernel can use a kernel API, so
> only kernel drivers can use the "URB" interface. By contrast, a user API
> can be used by regular programs, not part of the kernel. libusb provides
> a user API.

I thought that <linux/usb.h> provided a user API, not a kernel
one. In fact I thought that the functions provided throught that
header were syscalls. They are not, I've checked ;)

> So there's really no choice. Unless you're writing a kernel module, your
> program can't use URBs. You can use libusb, or if you don't care about
> portability you can use ioctl calls directly. But you can't use URBs.

OK, that's right. I really thought that there were syscalls
providing USB API for user space programs. That sounded less weird
when I first thought of it ;)) Thanks for the help :)))

Raúl Núñez de Arenas Coronado

--
Linux Registered User 88736
http://www.dervishd.net & http://www.pleyades.net/
It's my PC and I'll cry if I want to...
-
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/