【USB】struct usb_device_id 结构体详解

struct usb_device_id {  
    /* which fields to match against? */  
    __u16       match_flags; //说明使用哪种匹配方式
  
    /* Used for product specific matches; range is inclusive */  
    __u16       idVendor;                   //供应商ID  
    __u16       idProduct;                  //产品ID  
    __u16       bcdDevice_lo;  
    __u16       bcdDevice_hi;  
  
    /* Used for device class matches */  
    __u8        bDeviceClass;               //设备类型  
    __u8        bDeviceSubClass;            //设备子类型  
    __u8        bDeviceProtocol;            //协议  
  
    /* Used for interface class matches */  
    __u8        bInterfaceClass;            //接口类  
    __u8        bInterfaceSubClass;         //接口子类  
    __u8        bInterfaceProtocol;         //接口协议  
  
    /* not matched against */  
    kernel_ulong_t  driver_info;  
};
有几个宏可用来初始化这个结构:

USB_DEVICE(vendor, product)
创建一个 struct usb_device_id, 可用来只匹配特定供应商和产品 ID 值. 这是非常普遍用的, 对于需要特定驱动的 USB 设备.

USB_DEVICE_VER(vendor, product, lo, hi)
创建一个 struct usb_device_id, 用来在一个版本范围中只匹配特定供应商和产品 ID 值.

USB_DEVICE_INFO(class, subclass, protocol)
创建一个 struct usb_device_id, 可用来只匹配一个特定类的 USB 设备.

USB_INTERFACE_INFO(class, subclass, protocol)
创建一个 struct usb_device_id, 可用来只匹配一个特定类的 USB 接口.

struct usb_device_id 结构提供了这个驱动支持的一个不同类型 USB 设备的列表. 这个列表被USB 核心用来决定给设备哪个驱动, 并且通过热插拔脚本来决定哪个驱动自动加载, 当特定设备被插入系统时.

 

http://blog.csdn.net/u011310383/article/details/56553278

http://www.deansys.com/doc/ldd3/ch13s04.html

转载于:https://www.cnblogs.com/Dream-Chaser/p/7463119.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值