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?

- Bartosz
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to