*参照元 [#l7df8276] #backlinks *説明 [#uba4c8d5] -パス: [[linux-2.6.33/drivers/base/dd.c]] -FIXME: これは何? --説明 **引数 [#s379e9ec] -struct device_driver *drv -- --[[linux-2.6.33/device_driver]] -struct device *dev -- --[[linux-2.6.33/device]] **返り値 [#yf1cafd6] -int -- **参考 [#p4265fe9] *実装 [#n10e4fbc] /** * driver_probe_device - attempt to bind device & driver together * @drv: driver to bind a device to * @dev: device to try to bind to the driver * * This function returns -ENODEV if the device is not registered, * 1 if the device is bound successfully and 0 otherwise. * * This function must be called with @dev->sem held. When called for a * USB interface, @dev->parent->sem must be held as well. */ int driver_probe_device(struct device_driver *drv, struct device *dev) { int ret = 0; if (!device_is_registered(dev)) return -ENODEV; - --[[linux-2.6.33/device_is_registered()]] pr_debug("bus: '%s': %s: matched device %s with driver %s\n", drv->bus->name, __func__, dev_name(dev), drv->name); - --[[linux-2.6.33/pr_debug()]] --[[linux-2.6.33/dev_name()]] -drv->bus は struct bus_type 型である。 --[[linux-2.6.33/bus_type]] pm_runtime_get_noresume(dev); - --[[linux-2.6.33/pm_runtime_get_noresume()]] pm_runtime_barrier(dev); - --[[linux-2.6.33/pm_runtime_barrier()]] ret = really_probe(dev, drv); - --[[linux-2.6.33/really_probe()]] pm_runtime_put_sync(dev); - --[[linux-2.6.33/pm_runtime_put_sync()]] return ret; } *コメント [#t395cded]