[問題] 關於driver的一段程式
第一個問題是:
最近在看kernel下的程式,有一行不甚了解,就是下列紅色註記if(drv->probe)這裡,
想請教大家一下,它這段code的意思是:
drv是platform_driver的結構,如果它去存取probe指標函式時,
成功就執行 drv->driver.probe = platform_drv_probe; 這段code 嗎?
那成功是代表什麼意思?
第二個問題是: 下面這個struct裡包含有probe和remove的函式指標,
為什麼它們前面都要加一點呢?
static struct platform_driver davincifb_driver = {
.probe = davincifb_probe,
.remove = davincifb_remove,
.driver = {
.name = MODULE_NAME,
.owner = THIS_MODULE,
},
};
struct platform_driver {
int (*probe)(struct platform_device *);
........以下省略
};
static int platform_drv_probe(struct device *_dev){
struct platform_driver *drv = to_platform_driver(_dev->driver);
struct platform_device *dev = to_platform_device(_dev);
return drv->probe(dev);
}
int platform_driver_register(struct platform_driver *drv)
{
drv->driver.bus = &platform_bus_type;
if (drv->probe)
drv->driver.probe = platform_drv_probe;
.......以下省略
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.22.20.210
推
06/30 13:07, , 1F
06/30 13:07, 1F
→
06/30 15:37, , 2F
06/30 15:37, 2F
→
07/03 17:36, , 3F
07/03 17:36, 3F
→
07/10 09:43, , 4F
07/10 09:43, 4F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章