函数 usb_fill_int_urb 是一个帮忙函数, 来正确初始化一个 urb 来发送给 USB 设备的 一个中断端点:
void usb_fill_int_urb(struct urb *urb, struct usb_device *dev, unsigned int pipe, void *transfer_buffer,
int buffer_length, usb_complete_t complete, void *context, int interval);
这个函数包含许多参数: struct urb *urb
指向要被初始化的 urb 的指针. struct usb_device *dev
这个 urb 要发送到的 USB 设备. unsigned int pipe
这个 urb 要被发送到的 USB 设备的特定端点. 这个值被创建, 使用前面提过的 usb_sndintpipe 或者 usb_rcvintpipe 函数.
void *transfer_buffer
指向缓冲的指针, 从那里外出的数据被获取或者进入数据被接受. 注意这不能是一 个静态的缓冲并且必须使用 kmalloc 调用来创建.
int buffer_length
缓冲的长度, 被 transfer_buffer 指针指向. usb_complete_t complete
指针, 指向当这个 urb 完成时被调用的完成处理者. void *context
指向数据块的指针, 它被添加到这个 urb 结构为以后被完成处理者函数获取. int interval
这个 urb 应当被调度的间隔. 见之前的 struct urb 结构的描述, 来找到这个值 的正确单位.