USB_MATCH_ID - Online Linux Manual PageSection : 9
Updated : June 2018
Source : Kernel Hackers Manual 2​.6​.
Note : USB Core APIs

NAMEusb_match_id − find first usb_device_id matching device or interface

SYNOPSISconst struct usb_device_id * usb_match_id(struct usb_interface * interface, const struct usb_device_id * id);

ARGUMENTSinterface the interface of interest id array of usb_device_id structures, terminated by zero entry

DESCRIPTIONusb_match_id searches an array of usb_device_id´s and returns the first one matching the device or interface, or null​. This is used when binding (or rebinding) a driver to an interface​. Most USB device drivers will use this indirectly, through the usb core, but some layered driver frameworks use it directly​. These device tables are exported with MODULE_DEVICE_TABLE, through modutils, to support the driver loading functionality of USB hotplugging​.

WHAT MATCHESThe match_flags element in a usb_device_id controls which members are used​. If the corresponding bit is set, the value in the device_id must match its corresponding member in the device or interface descriptor, or else the device_id does not match​. driver_info is normally used only by device drivers, but you can create a wildcard matches anything usb_device_id as a driver´s modules​.usbmap entry if you provide an id with only a nonzero driver_info field​. If you do this, the USB device driver´s probe routine should use additional intelligence to decide whether to bind to the specified interface​.

WHAT MAKES GOOD USB_DEVICE_ID TABLESThe match algorithm is very simple, so that intelligence in driver selection must come from smart driver id records​. Unless you have good reasons to use another selection policy, provide match elements only in related groups, and order match specifiers from specific to general​. Use the macros provided for that purpose if you can​. The most specific match specifiers use device descriptor data​. These are commonly used with product−specific matches; the USB_DEVICE macro lets you provide vendor and product IDs, and you can also match against ranges of product revisions​. These are widely used for devices with application or vendor specific bDeviceClass values​. Matches based on device class/subclass/protocol specifications are slightly more general; use the USB_DEVICE_INFO macro, or its siblings​. These are used with single−function devices where bDeviceClass doesn´t specify that each interface has its own class​. Matches based on interface class/subclass/protocol are the most general; they let drivers bind to any interface on a multiple−function device​. Use the USB_INTERFACE_INFO macro, or its siblings, to match class−per−interface style devices (as recorded in bInterfaceClass)​. Note that an entry created by USB_INTERFACE_INFO won´t match any interface if the device class is set to Vendor−Specific​. This is deliberate; according to the USB spec the meanings of the interface class/subclass/protocol for these devices are also vendor−specific, and hence matching against a standard product class wouldn´t work anyway​. If you really want to use an interface−based match for such a device, create a match record that also specifies the vendor ID​. (Unforunately there isn´t a standard macro for creating records like this​.) Within those groups, remember that not all combinations are meaningful​. For example, don´t give a product version range without vendor and product IDs; or specify a protocol without its associated class and subclass​.

COPYRIGHT
0
Johanes Gumabo
Data Size   :   8,639 byte
man-usb_match_id.9Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   4 / 171,390
Visitor ID   :     :  
Visitor IP   :   3.135.249.76   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.