USB_VENDOR_...TERFACE_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… USB_VENDOR_...TERFACE_INFO(9) πŸ’…

okay bestie, welcome to the Kernel API Manual β€” yes we're reading kernel docs together, this is our bonding era ✨ the page title got truncated all cutely as USB_VENDOR_...TERFACE_INFO(9) so that's the vibe we're going with, no cap πŸ’–


🌸 NAME 🌸

USB_VENDOR_AND_INTERFACE_INFO β€” the macro that describes a specific usb vendor paired with a class of usb interfaces 🫢 like, one (1) vendor, whole class energy.


✨ SYNOPSIS ✨

USB_VENDOR_AND_INTERFACE_INFO (vend , cl , sc , pr );

literally just four little arguments, she's low maintenance fr fr πŸŽ€


πŸŽ€ ARGUMENTS πŸŽ€

  • vend β€” the 16 bit USB Vendor ID πŸ‘‘ (sixteen bits, not fifteen, not seventeen, we're precise here)
  • cl β€” the bInterfaceClass value πŸ’œ
  • sc β€” the bInterfaceSubClass value πŸ¦‹
  • pr β€” the bInterfaceProtocol value 🌸

πŸ’€ DESCRIPTION πŸ’€

so this macro's whole job? it creates a struct usb_device_id that matches a specific vendor with a specific class of interfaces. that's it, that's the gig, and she does it flawlessly πŸ’…

and the part where it really eats? this is especially useful when explicitly matching devices that have vendor specific bDeviceClass values, but standards-compliant interfaces. like, the device is doing its own chaotic vendor thing at the top level πŸ™ˆ but the interfaces underneath are perfectly standards-compliant citizens β€” iconic behavior, and this macro is how you match it. periodt πŸ”₯


πŸ” SEE ALSO πŸ”

bestie the cross-reference section is long, buckle up, we're going on a journey 🌈

The kernel file: ./include/linux/usb.h

Structs & friends:

The other matching macros (the whole squad 🫢):

Driver structs & registration:

URB stuff (the plumbing 🧚):


ngl if you read all of those you're a real one 😭 take a water break, you've earned it πŸ’–

and that's the page!! mwah πŸ’‹ sourcing from ./include/linux, dated October 2026 β€” the USB_VENDOR_...TERFACE_INFO(9) girlies stay winning, slay, go match some vendor-class interfaces responsibly β­πŸ‘‘

πŸ“¦ where this page comes from