1. NAME▲
struct_bus_type - The bus type of the device
2. 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;
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
iommu_ops *
iommu_ops;
struct
subsys_private *
p;
}
;
3. 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.
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 driverAqs 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.
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 driverAqs 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.
4. 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 busAq methods, PM operations, and the driver coreAqs private data.
5. COPYRIGHT ▲