blob: 0c54714f54f8103d89eb48e4fe88136c5efdd673 [file] [log] [blame]
/* Simple file with a USB map in it. */
#define __stringify_1(x) #x
#define __stringify(x) __stringify_1(x)
#define MODULE_GENERIC_TABLE(gtype,name) \
static const unsigned long __module_##gtype##_size \
__attribute__ ((unused)) = sizeof(struct gtype##_id); \
static const struct gtype##_id * __module_##gtype##_table \
__attribute__ ((unused)) = name; \
extern const struct gtype##_id __mod_##gtype##_table \
__attribute__ ((unused, alias(__stringify(name))))
#define MODULE_DEVICE_TABLE(type,name) \
MODULE_GENERIC_TABLE(type##_device,name)
#define USB_DEVICE(vend,prod) \
.match_flags = USB_DEVICE_ID_MATCH_DEVICE, .idVendor = (vend), .idProduct = (prod)
struct usb_device_id {
/* which fields to match against? */
unsigned short match_flags;
/* Used for product specific matches; range is inclusive */
unsigned short idVendor;
unsigned short idProduct;
unsigned short bcdDevice_lo;
unsigned short bcdDevice_hi;
/* Used for device class matches */
unsigned char bDeviceClass;
unsigned char bDeviceSubClass;
unsigned char bDeviceProtocol;
/* Used for interface class matches */
unsigned char bInterfaceClass;
unsigned char bInterfaceSubClass;
unsigned char bInterfaceProtocol;
/* not matched against */
unsigned long driver_info;
};
struct usb_device_id usb_ids[] = {
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
0xdeadbeef },
{ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
0xdeadbee5 },
{ }
};
MODULE_DEVICE_TABLE(usb, usb_ids);