Date: Tue, 24 May 2005 22:52:19 +0200 From: Dirk GOUDERS <gouders@et.bocholt.fh-ge.de> To: freebsd-usb@freebsd.org Subject: Re: poll(2)ing or select(2)ing /dev/usb0 Message-ID: <200505242052.j4OKqJiI001602@karga.hank.home> In-Reply-To: Message from Hans Petter Selasky <hselasky@c2i.net> of "Tue, 24 May 2005 21:22:52 %2B0200." <200505242122.53801.hselasky@c2i.net>
index | next in thread | previous in thread | raw e-mail
> You cannot read data from /dev/usbN, only ioctls are possible on those
> devices.
>
> See "/sys/dev/usb/usb.c" (usbpoll), if you got the source code installed.
Ah yes, thank you, now I understand why my programs behave like they do.
To me, it looks as if the manual page usb(4) is a little bit misleading:
<excerpt>
USB CONTROLLER INTERFACE
Use the following to get access to the USB specific structures and
defines.
The /dev/usbN can be opened and a few operations can be performed on it.
The poll(2) system call will say that I/O is possible on the controller
device when a USB device has been connected or disconnected to the bus.
The following ioctl(2) commands are supported on the controller device:
</excerpt>
I understood the text in the following way:
"If you want to know if a device has been connected/disconnected, then
call poll(2) on /dev/usbN and if poll(2) says that descriptors are
ready, perform one of the ioctl(2) command to find out what exactly
happened."
Well, do I understand it right, that the only way to use poll(2) to
come to know if a device has been connected/disconnected to/from the
bus is to poll(2) /dev/usb (the event interface)? And therefore on a
machine that runs usbd(8), no other process can use poll(2), to come to
know about such events, but has to do it somehow else?
Dirk
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200505242052.j4OKqJiI001602>
