Is there some implicit locking of device methods?
freebsd at chillt.de
Tue Apr 26 12:39:22 UTC 2011
> You need to handle all cases in your driver. Fortunately there exists a
> solution for this already, called USB cdev. See
I went through all the USB drivers with a fine comb (the driver I am
porting was based on the old USB stack and so I needed to adjust it for
the new stack). Drivers like ulpt seem to be based around usb_fifo_*
structures. If I understand usb_fifo_* right, it gives you a single
device with FIFO semantics. This is not sufficient in my case. My device
is opened for reading by several processes in parallel and needs to keep
a separate FIFO per process. I implemented this via device cloning - and
I could not see how to integrate that with usb_fifo_*. Thus, I based my
driver on the raw cdev framework. Am I missing something obvious and
making my life unnecessarily hard?
More information about the freebsd-hackers