【问题标题】:Device driver entry points accessing设备驱动程序入口点访问
【发布时间】:2013-10-25 17:41:31
【问题描述】:

一个函数中不同的入口点可以被其他驱动访问吗?

我知道通过使用EXPORT_SYMBOL,我们可以为函数和符号做到这一点。我的困惑是可以导出read/write 入口点。如果我这样做会违反良好的驾驶员习惯吗?

【问题讨论】:

  • readwrite 与其他 EXPORT_SYMBOL 函数一样。困难在于向readwrite 提供参数。通常这是由提供 inode 类型数据的更高通用 file 层完成的。如果数据是硬编码,您的建议可以完成并且可能有意义,但您通常不希望这样做。一些子系统为这些提供了钩子,比如i2cspi等。如果你能多说一点设备.
  • 让我们考虑一个简单的字符设备,我已经为其编写了驱动程序...您能否详细说明您提到的更高通用文件...。
  • 例如,read() 传递了 struct file*loff_t *。如果你的例程不使用它们,那么它就没有使用更高的层。

标签: linux-kernel linux-device-driver


【解决方案1】:

您可以使用 EXPORT_SYMBOL() 导出任何全局函数和变量,甚至设备文件操作 read() 和 write() 也可以。由于调用它们所需的参数(例如设备的文件指针),从任何内核模块调用它们都将非常困难。

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多