linux-4.4.1/driver_register()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#l576f6f5]
#backlinks
*説明 [#gc3b4075]
-パス: [[linux-4.4.1/drivers/base/driver.c]]
-FIXME: これは何?
--説明
**引数 [#v5d0eb4f]
-struct device_driver *drv
--
--[[linux-4.4.1/device_driver]]
**返り値 [#k2a2d19c]
-int
--
**参考 [#a6eba294]
*実装 [#i91e6833]
/**
* driver_register - register driver with bus
* @drv: driver to register
*
* We pass off most of the work to the bus_add_driver() ...
* since most of the things we have to do deal with the ...
* structures.
*/
int driver_register(struct device_driver *drv)
{
int ret;
struct device_driver *other;
BUG_ON(!drv->bus->p);
-
--[[linux-4.4.1/BUG_ON()]]
if ((drv->bus->probe && drv->probe) ||
(drv->bus->remove && drv->remove) ||
(drv->bus->shutdown && drv->shutdown))
printk(KERN_WARNING "Driver '%s' needs u...
"bus_type methods\n", drv->name);
-
-drv->bus は struct bus_type * 型
--[[linux-4.4.1/bus_type]]
--[[linux-4.4.1/printk()]]
other = driver_find(drv->name, drv->bus);
if (other) {
printk(KERN_ERR "Error: Driver '%s' is a...
"aborting...\n", drv->name);
return -EBUSY;
}
-
--[[linux-4.4.1/driver_find()]]
ret = bus_add_driver(drv);
if (ret)
return ret;
-
--[[linux-4.4.1/bus_add_driver()]]
ret = driver_add_groups(drv, drv->groups);
if (ret) {
bus_remove_driver(drv);
return ret;
}
kobject_uevent(&drv->p->kobj, KOBJ_ADD);
-
--[[linux-4.4.1/driver_add_groups()]]
--[[linux-4.4.1/bus_remove_driver()]]
--[[linux-4.4.1/kobject_uevent()]]
return ret;
}
EXPORT_SYMBOL_GPL(driver_register);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
*コメント [#l417199d]
終了行:
*参照元 [#l576f6f5]
#backlinks
*説明 [#gc3b4075]
-パス: [[linux-4.4.1/drivers/base/driver.c]]
-FIXME: これは何?
--説明
**引数 [#v5d0eb4f]
-struct device_driver *drv
--
--[[linux-4.4.1/device_driver]]
**返り値 [#k2a2d19c]
-int
--
**参考 [#a6eba294]
*実装 [#i91e6833]
/**
* driver_register - register driver with bus
* @drv: driver to register
*
* We pass off most of the work to the bus_add_driver() ...
* since most of the things we have to do deal with the ...
* structures.
*/
int driver_register(struct device_driver *drv)
{
int ret;
struct device_driver *other;
BUG_ON(!drv->bus->p);
-
--[[linux-4.4.1/BUG_ON()]]
if ((drv->bus->probe && drv->probe) ||
(drv->bus->remove && drv->remove) ||
(drv->bus->shutdown && drv->shutdown))
printk(KERN_WARNING "Driver '%s' needs u...
"bus_type methods\n", drv->name);
-
-drv->bus は struct bus_type * 型
--[[linux-4.4.1/bus_type]]
--[[linux-4.4.1/printk()]]
other = driver_find(drv->name, drv->bus);
if (other) {
printk(KERN_ERR "Error: Driver '%s' is a...
"aborting...\n", drv->name);
return -EBUSY;
}
-
--[[linux-4.4.1/driver_find()]]
ret = bus_add_driver(drv);
if (ret)
return ret;
-
--[[linux-4.4.1/bus_add_driver()]]
ret = driver_add_groups(drv, drv->groups);
if (ret) {
bus_remove_driver(drv);
return ret;
}
kobject_uevent(&drv->p->kobj, KOBJ_ADD);
-
--[[linux-4.4.1/driver_add_groups()]]
--[[linux-4.4.1/bus_remove_driver()]]
--[[linux-4.4.1/kobject_uevent()]]
return ret;
}
EXPORT_SYMBOL_GPL(driver_register);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
*コメント [#l417199d]
ページ名: