int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe, void *data, int len, int *actual_length, int timeout); usb_bulk_msg()函数创建一个 USB 批量 urb 并将它发送到特定设备,这个函数是同步的,它一直等待 urb 完成后才返回。 usb_dev 参数为批量消息要发送的 USB 设备的指针,pipe ...
(int)pipe的创建:使用usb_sndintpipe()或 usb_rcvintpipe()函数 4.2 批量urb 对于批量urb,使用 usb_fill_bulk_urb()函数来初始化 urb。 1staticinlinevoidusb_fill_bulk_urb(structurb *urb,2structusb_device *dev,3unsignedintpipe,4void*transfer_buffer,5intbuffer_length,6usb_complete_t complete_fn,...
int interval) static inline void usb_fill_bulk_urb (struct urb *urb, struct usb_device *dev, unsigned int pipe, void *transfer_buffer, int buffer_length, usb_complete_t complete_fn, void *context) 相同:对于ctl/int/bulk这三种传输类型,在fill urb时都需要填充dev,pipe,transfer_buffer,transfer...
int buffer_length, usb_complete_t complete_fn, void *context, int interval) static inline void usb_fill_bulk_urb (struct urb *urb, struct usb_device *dev, unsigned int pipe, void *transfer_buffer, int buffer_length, usb_complete_t complete_fn, void *context) 相同:对于ctl/int/bulk这三...
if (!(info->flags & FLAG_NO_SETINT)) @@ -1784,6 +1788,8 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod) else status = 0;if (status == 0 && !usb_check_bulk_endpoints(udev, ep_addrs))
int interval)static inline void usb_fill_bulk_urb (struct urb *urb,struct usb_device *dev,unsigned int pipe,void *transfer_buffer,int buffer_length,usb_complete_t complete_fn,void *context)相同:对于ctl/int/bulk这三种传输类型,在fill urb时都需要填充dev,pipe,transfer_buffer,transfer_buffer_...
*/intusb_stor_bulk_transfer_buf(struct us_data *us,unsignedintpipe,void*buf,unsignedintlength,unsignedint*act_len){intresult; US_DEBUGP("%s: xfer %u bytes\n", __FUNCTION__, length);#ifdefined(__VMKLNX__)if(!in_interrupt() && ...
相同:对于ctl/int/bulk这三种传输类型,在fill urb时都需要填充dev,pipe,transfer_buffer,transfer_buffer_length,complete, context 字段。其中pipe代表当前urb传输的管道,transfer_buffer 代表当前urb传输的数据的起始地址,transfer_buffer_length是当前urb传输的数据长度,complete是当前urb处理完后调用的回调函数。
#define USB_ENDPOINT_XFER_BULK 2 #define USB_ENDPOINT_XFER_INT 3 #define USB_ENDPOINT_MAX_ADJUSTABLE 0x80 /*---*/ USB 和 sysfs 由于单个 USB 物理设备的复杂性,设备在 sysfs 中的表示也非常复杂。物理 USB 设备(通过 struct usb_device 表示...
int buffer_length, usb_complete_t complete_fn, void *context, int interval) 分别用来填充CONTORL,BULK,INT类型的URB. 观察他们的函数原型,发现有很多相的的参数.先对这些参数做一下解释: Urb:是要初始化的urb Dev:表示消息要被发送到的USB设备