/* Define these values to match your devices */
#define USB_SKEL_VENDOR_ID 0xfff0 制造商ID
#define USB_SKEL_PRODUCT_ID 0xfff0 产品ID
这些都定义在struct usb_device_id结构体中 产品信息
/* table of devices that work with this driver */
static struct usb_device_id skel_table [] = {
{ USB_DEVICE(USB_SKEL_VENDOR_ID, USB_SKEL_PRODUCT_ID) },
{ } /* Terminating entry */
};
**USB_DEVICE (USB_SKEL_VENDOR_ID,USB_SKEL_PRODUCT_ID);该宏根据制造商ID和产品ID生成一个usb_device_id结构体的实例 生成支持可支持VENDOR_ID,PRODUCT_ID 的设备
**USB_DEVICE_VER(vendor,product,lo,hi) 该宏根据制造商ID,产品ID,产品版本的最小值和最大值生成一个usb_device_id结构体的实例,在数组中增加该元素将意味着该驱动可支持匹配制造商ID,产品ID和lo~hi范围内版本的设备。
**USB_DEVICE_INFO(class,subclass,protocol)该宏用于创建设备指定类型的u结构体sub_device_id实例。
**USB_INTERFACE_INFO(class,subclass,protocol)该宏用于创建一个匹配接口指定类型的usb_device_id结构体实例。
MODULE_DEVICE_TABLE(usb, skel_table);
**当usb设备插入时,为使linux-hotlug系统自动装载驱动程序,你需要创建一个MODULE_DEVICE_TABLE(usb, skel_table);
/* Get a minor range for your devices from the usb maintainer */
**获得一个较小的范围为了 你的设备来自于usb 维护者 怎么翻译呢 !!!英语貌似不行洒
#define USB_SKEL_MINOR_BASE 192
/* our private defines. if this grows any larger, use your own .h file */
**我们四人定义 假如变得更大,使用你自己的 .h文件
#define MAX_TRANSFER (PAGE_SIZE - 512)
/* MAX_TRANSFER is chosen so that the VM is not stressed by
allocations > PAGE_SIZE and the number of packets in a page
is an integer 512 is the largest possible packet on EHCI */
**MAX_TRANSFER被选择 那么 VM将不会通过分配 强调 页大小和一页数据包 数量 在EHCI 上将变的可能很大 是512 的整数倍
#define WRITES_IN_FLIGHT 8
/* arbitrarily chosen */
**任意的选择
终于终于 看完 这点点东西了。。
有点想法啊。。 白天看 详解 的时候,很不能静下心来, 以上的 四个 USB_DEVICE都没有 仔细看 。。头很晕。。
还是一个 人好啊。。