Logo Search packages:      
Sourcecode: linux version File versions

usb_device_id Struct Reference

#include <mod_devicetable.h>

List of all members.


Detailed Description

struct usb_device_id - identifies USB devices for probing and hotplugging : Bit mask controlling of the other fields are used to match against new devices. Any field except for driver_info may be used, although some only make sense in conjunction with other fields. This is usually set by a USB_DEVICE_*() macro, which sets all other fields in this structure except for driver_info. : USB vendor ID for a device; numbers are assigned by the USB forum to its members. : Vendor-assigned product ID. : Low end of range of vendor-assigned product version numbers. This is also used to identify individual product versions, for a range consisting of a single device. : High end of version number range. The range of product versions is inclusive. : Class of device; numbers are assigned by the USB forum. Products may choose to implement classes, or be vendor-specific. Device classes specify behavior of all the interfaces on a devices. : Subclass of device; associated with bDeviceClass. : Protocol of device; associated with bDeviceClass. : Class of interface; numbers are assigned by the USB forum. Products may choose to implement classes, or be vendor-specific. Interface classes specify behavior only of a given interface; other interfaces may support other classes. : Subclass of interface; associated with bInterfaceClass. : Protocol of interface; associated with bInterfaceClass. : Holds information used by the driver. Usually it holds a pointer to a descriptor understood by the driver, or perhaps device flags.

In most cases, drivers will create a table of device IDs by using USB_DEVICE(), or similar macros designed for that purpose. They will then export it to userspace using MODULE_DEVICE_TABLE(), and provide it to the USB core through their usb_driver structure.

See the usb_match_id() function for information about how matches are performed. Briefly, you will normally use one of several macros to help construct these entries. Each entry you provide will either identify one or more specific products, or will identify a class of products which have agreed to behave the same. You should put the more specific matches towards the beginning of your table, so that driver_info can record quirks of specific products.

Definition at line 98 of file mod_devicetable.h.


Public Attributes

__u16 bcdDevice_hi
__u16 bcdDevice_lo
__u8 bDeviceClass
__u8 bDeviceProtocol
__u8 bDeviceSubClass
__u8 bInterfaceClass
__u8 bInterfaceProtocol
__u8 bInterfaceSubClass
kernel_ulong_t driver_info
__u16 idProduct
__u16 idVendor
__u16 match_flags

The documentation for this struct was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index