STRUCT USB_DEVICE_DR(9) Host-Side Data Types and Macro STRUCT USB_DEVICE_DR(9)NAME
struct_usb_device_driver - identifies USB device driver to usbcore
SYNOPSIS
struct usb_device_driver {
const char * name;
int (* probe) (struct usb_device *udev);
void (* disconnect) (struct usb_device *udev);
int (* suspend) (struct usb_device *udev, pm_message_t message);
int (* resume) (struct usb_device *udev, pm_message_t message);
struct usbdrv_wrap drvwrap;
unsigned int supports_autosuspend:1;
};
MEMBERS
name
The driver name should be unique among USB drivers, and should normally be the same as the module name.
probe
Called to see if the driver is willing to manage a particular device. If it is, probe returns zero and uses dev_set_drvdata to
associate driver-specific data with the device. If unwilling to manage the device, return a negative errno value.
disconnect
Called when the device is no longer accessible, usually because it has been (or is being) disconnected or the driver's module is being
unloaded.
suspend
Called when the device is going to be suspended by the system.
resume
Called when the device is being resumed by the system.
drvwrap
Driver-model core structure wrapper.
supports_autosuspend
if set to 0, the USB core will not allow autosuspend for devices bound to this driver.
DESCRIPTION
USB drivers must provide all the fields listed above except drvwrap.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 STRUCT USB_DEVICE_DR(9)
Check Out this Related Man Page
STRUCT BUS_TYPE(9) Device drivers infrastructure STRUCT BUS_TYPE(9)NAME
struct_bus_type - The bus type of the device
SYNOPSIS
struct bus_type {
const char * name;
const char * dev_name;
struct device * dev_root;
struct bus_attribute * bus_attrs;
struct device_attribute * dev_attrs;
struct driver_attribute * drv_attrs;
const struct attribute_group ** bus_groups;
const struct attribute_group ** dev_groups;
const struct attribute_group ** drv_groups;
int (* match) (struct device *dev, struct device_driver *drv);
int (* uevent) (struct device *dev, struct kobj_uevent_env *env);
int (* probe) (struct device *dev);
int (* remove) (struct device *dev);
void (* shutdown) (struct device *dev);
int (* online) (struct device *dev);
int (* offline) (struct device *dev);
int (* suspend) (struct device *dev, pm_message_t state);
int (* resume) (struct device *dev);
const struct dev_pm_ops * pm;
struct iommu_ops * iommu_ops;
struct subsys_private * p;
};
MEMBERS
name
The name of the bus.
dev_name
Used for subsystems to enumerate devices like ("foou", dev->id).
dev_root
Default device to use as the parent.
bus_attrs
Default attributes of the bus.
dev_attrs
Default attributes of the devices on the bus.
drv_attrs
Default attributes of the device drivers on the bus.
bus_groups
Default attributes of the bus.
dev_groups
Default attributes of the devices on the bus.
drv_groups
Default attributes of the device drivers on the bus.
match
Called, perhaps multiple times, whenever a new device or driver is added for this bus. It should return a nonzero value if the given
device can be handled by the given driver.
uevent
Called when a device is added, removed, or a few other things that generate uevents to add the environment variables.
probe
Called when a new device or driver add to this bus, and callback the specific driver's probe to initial the matched device.
remove
Called when a device removed from this bus.
shutdown
Called at shut-down time to quiesce the device.
online
Called to put the device back online (after offlining it).
offline
Called to put the device offline for hot-removal. May fail.
suspend
Called when a device on this bus wants to go to sleep mode.
resume
Called to bring a device on this bus out of sleep mode.
pm
Power management operations of this bus, callback the specific device driver's pm-ops.
iommu_ops
IOMMU specific operations for this bus, used to attach IOMMU driver implementations to a bus and allow the driver to do bus-specific
setup
p
The private data of the driver core, only the driver core can touch this.
DESCRIPTION
A bus is a channel between the processor and one or more devices. For the purposes of the device model, all devices are connected via a
bus, even if it is an internal, virtual, "platform" bus. Buses can plug into each other. A USB controller is usually a PCI device, for
example. The device model represents the actual connections between buses and the devices they control. A bus is represented by the
bus_type structure. It contains the name, the default attributes, the bus' methods, PM operations, and the driver core's private data.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 STRUCT BUS_TYPE(9)