wang12zhedi 发表于 2012-12-25 13:04:05

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;
这句怎么去理解呢?

embedsky_lhh 发表于 2012-12-26 09:34:37

你看下 struct platform_driver的原型就明白了,struct platform_driver 下有 几个成员变量是几个函数指针,其中就有probe......, 而 struct platform_driver其成员有driver的成员变量,而一般.driver.probe是内核默认的,不提供给用户实现,就算实现了也会覆盖
页: [1]
查看完整版本: platform_driver_register函数分析 求解惑