linux 内核中的 USB 代码和所有的 USB 设备通讯使用称为 urb 的东西( USB request block). 这个请求块用 struct urb 结构描述并且可在 include/linux/usb.h 中找到. 一个 urb 用来发送或接受数据到或者从一个特定 USB 设备上的特定的 USB 端点, 以一 种异步的方式. 它用起来非常象一个 kiocb 结构被用在文件系统异步
以下文字会对linux usb hcd driver中的ehci_urb_enqueue函数做一些说明。 先把该函数罗列一下。 1. /* 2. * non-error returns are a promise to giveback() the urb later 3. * we drop ownership so next owner (or urb unlink) c