*参照元 [#ffdfd980] #backlinks *説明 [#rae14ed2] -パス: [[linux-4.4.1/include/linux/device.h]] -FIXME: これは何? --説明 **参考 [#z56e1d64] *実装 [#y74765b3] /** * struct device_driver - The basic device driver structure * @name: Name of the device driver. * @bus: The bus which the device of this driver belongs to. * @owner: The module owner. * @mod_name: Used for built-in modules. * @suppress_bind_attrs: Disables bind/unbind via sysfs. * @probe_type: Type of the probe (synchronous or asynchronous) to use. * @of_match_table: The open firmware table. * @acpi_match_table: The ACPI match table. * @probe: Called to query the existence of a specific device, * whether this driver can work with it, and bind the driver * to a specific device. * @remove: Called when the device is removed from the system to * unbind a device from this driver. * @shutdown: Called at shut-down time to quiesce the device. * @suspend: Called to put the device to sleep mode. Usually to a * low power state. * @resume: Called to bring a device from sleep mode. * @groups: Default attributes that get created by the driver core * automatically. * @pm: Power management operations of the device which matched * this driver. * @p: Driver core's private data, no one other than the driver * core can touch this. * * The device driver-model tracks all of the drivers known to the system. * The main reason for this tracking is to enable the driver core to match * up drivers with new devices. Once drivers are known objects within the * system, however, a number of other things become possible. Device drivers * can export information and configuration variables that are independent * of any specific device. */ struct device_driver { const char *name; struct bus_type *bus; - --[[linux-4.4.1/bus_type]] struct module *owner; const char *mod_name; /* used for built-in modules */ - --[[linux-4.4.1/module]] bool suppress_bind_attrs; /* disables bind/unbind via sysfs */ enum probe_type probe_type; - --[[linux-4.4.1/probe_type]] const struct of_device_id *of_match_table; const struct acpi_device_id *acpi_match_table; - --[[linux-4.4.1/of_device_id]] --[[linux-4.4.1/acpi_device_id]] 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 attribute_group **groups; - --[[linux-4.4.1/device]] --[[linux-4.4.1/pm_message_t]] --[[linux-4.4.1/attribute_group]] const struct dev_pm_ops *pm; - --[[linux-4.4.1/dev_pm_ops]] struct driver_private *p; - --[[linux-4.4.1/driver_private]] }; *コメント [#a6af7b3b]