DEVRES_GET(9) Driver Basics DEVRES_GET(9)NAME
devres_get - Find devres, if non-existent, add one atomically
SYNOPSIS
void * devres_get(struct device * dev, void * new_res, dr_match_t match, void * match_data);
ARGUMENTS
dev
Device to lookup or add devres for
new_res
Pointer to new initialized devres to add if not found
match
Match function (optional)
match_data
Data for the match function
DESCRIPTION
Find the latest devres of dev which has the same release function as new_res and for which match return 1. If found, new_res is freed;
otherwise, new_res is added atomically.
RETURNS
Pointer to found or added devres.
COPYRIGHT Kernel Hackers Manual 2.6. July 2010 DEVRES_GET(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)