struct bus_type — The bus type of the device
struct bus_type { const char * name; struct bus_attribute * bus_attrs; struct device_attribute * dev_attrs; struct driver_attribute * drv_attrs; 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 (* suspend) (struct device *dev, pm_message_t state); int (* resume) (struct device *dev); const struct dev_pm_ops * pm; struct subsys_private * p; };
The name of the bus.
Default attributes of the bus.
Default attributes of the devices on the bus.
Default attributes of the device drivers on the bus.
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.
Called when a device is added, removed, or a few other things that generate uevents to add the environment variables.
Called when a new device or driver add to this bus, and callback the specific driver's probe to initial the matched device.
Called when a device removed from this bus.
Called at shut-down time to quiesce the device.
Called when a device on this bus wants to go to sleep mode.
Called to bring a device on this bus out of sleep mode.
Power management operations of this bus, callback the specific device driver's pm-ops.
The private data of the driver core, only the driver core can touch this.
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.