Am Sonntag, 1. Mai 2005 21:29 schrieb Harald Welte: > A quick browse through the EHCI specification and the ehci linux hcd > driver revealed that it should be technically possible to: > > 0) open an usbdevfs file like usual > 1) set up a mmap()ed buffer between kernel and userspace > 2) create one (or multiple consecutive) urb that points into the > mmap()ed buffer > 3) submit that urb to ehci-hcd, which would in turn set up qtd's > pointing directly into that buffer > > The result should be a truly zerocopy dma-to-userspace architecture. > > As my only connection with the usb code so far has been the cyberjack > driver and usbdevfs- based userspace programs, I'd like to receive the > comments of people more familiar with the usb subsystem. > > Do you think a system described above is actually feasible? If yes, > what kind of implementation suggestions do you have?
In static int hcd_submit_urb (struct urb *urb, int mem_flags) you can see that usbcore really doesn't care what buffer you feed it if you've called dma_map_single() on it. You will need to make sure that buffers don't overlap and make sure there's some limit to the ram a task can pin thus. Regards Oliver ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel