Am Montag, 2. Juli 2007 schrieb David Brownell: > On Saturday 30 June 2007, Oliver Neukum wrote: > > > So do we have consensus for this prototype: > > > > struct urb *usb_alloc_urb(struct usb_host_endpoint *ep, > > unsigned int max_length, unsigned int iso_fields, > > gfp_t mem_flags); > > Calling conventions that require line-wrapping are almost by > definition unwieldy ... :(
In usbcore we have names_containing_exact_descriptions. But yes. I intended to find a unified API that allows preallocation. If we can live with a separate allocator for ISO URBs, we can do better. > That might make sense for an HCD method; size_t for length, > and rename it so it doesn't suggest it's a "maximum" so much > as an educated guess. So you are suggesting that usbcore should preallocate, but also, if need be allocate more in usb_submit_urb()? So that the guarantee against getting ENOMEM is valid only if you don't exceed the hint given at allocation time? That is an idea I would have never had, but it is very good. > But otherwise, I thought one of the goals was to get rid of > such annoying "iso fields" (should be packets, not fields!) > parameters, which were always being passed as zero ... ? > > I'd expect drivers would just pass {ep, length, gfp} except > for the rare ISO ones, which would pass the number of packets. > That suggests two separate signatures at that level. OK. Regards Oliver ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel