platform_driver_register函数分析 求解惑
int platform_driver_register(struct platform_driver *drv){/// &s3c2410fb_driver
drv->driver.bus = &platform_bus_type;//总线类型定义为platform_bus_type
if (drv->probe)
drv->driver.probe = platform_drv_probe;
if (drv->remove)
drv->driver.remove = platform_drv_remove;
if (drv->shutdown)
drv->driver.shutdown = platform_drv_shutdown;
return driver_register(&drv->driver);
}
这个函数没有几句代码但是 不理解
例如
if (drv->probe)
drv->driver.probe = platform_drv_probe;
这句怎么去理解呢? 你看下 struct platform_driver的原型就明白了,struct platform_driver 下有 几个成员变量是几个函数指针,其中就有probe......, 而 struct platform_driver其成员有driver的成员变量,而一般.driver.probe是内核默认的,不提供给用户实现,就算实现了也会覆盖
页:
[1]