Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug


       usb_sg_init - initializes scatterlist-based bulk/interrupt I/O request


       int usb_sg_init  (struct usb_sg_request * io, struct usb_device * dev,
                          unsigned pipe, unsigned period,
                          struct scatterlist * sg, int nents, size_t length,
                          gfp_t mem_flags);


       io     request block  being  initialized.  until  usb_sg_wait  returns,
              treat this as a pointer to an opaque block of memory,

       dev    the usb device that will send or receive the data

       pipe   endpoint ‘‘pipe’’ used to transfer the data

       period polling  rate  for  interrupt  endpoints, in frames or (for high
              speed endpoints) microframes; ignored for bulk

       sg     scatterlist entries

       nents  how many entries in the scatterlist

       length how many bytes to send from the scatterlist,  or  zero  to  send
              every byte identified in the list.

              SLAB_* flags affecting memory allocations in this call


       Returns zero for success, else a negative errno value. This initializes
       a scatter/gather request, allocating resources such as I/O mappings and
       urb memory (except maybe memory used by USB controller drivers).

       The  request  must be issued using usb_sg_wait, which waits for the I/O
       to complete (or to be  canceled)  and  then  cleans  up  all  resources
       allocated by usb_sg_init.

       The  request may be canceled with usb_sg_cancel, either before or after
       usb_sg_wait is called.