usbcore: add usb_device_driver definition
authorAlan Stern <stern@rowland.harvard.edu>
Sun, 2 Jul 2006 02:08:49 +0000 (22:08 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 27 Sep 2006 18:58:50 +0000 (11:58 -0700)
commit8bb54ab573ecd1b4fe2ed66416a8d99a86e65316
tree36df75387a62923e3bd152f3c2ce16147be1828c
parent36e56a34586783c7986ce09d39db80b27c95ce24
usbcore: add usb_device_driver definition

This patch (as732) adds a usb_device_driver structure, for representing
drivers that manage an entire USB device as opposed to just an
interface.  Support routines like usb_register_device_driver,
usb_deregister_device_driver, usb_probe_device, and usb_unbind_device
are also added.

Unlike an earlier version of this patch, the new code is type-safe.  To
accomplish this, the existing struct driver embedded in struct
usb_driver had to be wrapped in an intermediate wrapper.  This enables
the core to tell at runtime whether a particular struct driver belongs
to a device driver or to an interface driver.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/driver.c
drivers/usb/core/generic.c
drivers/usb/core/usb.c
drivers/usb/core/usb.h
include/linux/usb.h