设备驱动程序入口点访问
Posted
技术标签:
【中文标题】设备驱动程序入口点访问【英文标题】:Device driver entry points accessing 【发布时间】:2013-10-25 17:41:31 【问题描述】:一个函数中不同的入口点可以被其他驱动访问吗?
我知道通过使用EXPORT_SYMBOL
,我们可以为函数和符号做到这一点。我的困惑是可以导出read
/write
入口点。如果我这样做会违反良好的驾驶员习惯吗?
【问题讨论】:
read
和 write
与其他 EXPORT_SYMBOL
函数一样。困难在于向read
和write
提供参数。通常这是由提供 inode 类型数据的更高通用 file 层完成的。如果数据是硬编码,您的建议可以完成并且可能有意义,但您通常不希望这样做。一些子系统为这些提供了钩子,比如i2c和spi等。如果你能多说一点设备.
让我们考虑一个简单的字符设备,我已经为其编写了驱动程序...您能否详细说明您提到的更高通用文件...。
例如,read()
传递了 struct file*
和 loff_t *
。如果你的例程不使用它们,那么它就没有使用更高的层。
【参考方案1】:
您可以使用 EXPORT_SYMBOL() 导出任何全局函数和变量,甚至设备文件操作 read() 和 write() 也可以。由于调用它们所需的参数(例如设备的文件指针),从任何内核模块调用它们都将非常困难。
【讨论】:
以上是关于设备驱动程序入口点访问的主要内容,如果未能解决你的问题,请参考以下文章