设备驱动程序入口点访问

Posted

技术标签:

【中文标题】设备驱动程序入口点访问【英文标题】: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 *。如果你的例程不使用它们,那么它就没有使用更高的层。 【参考方案1】:

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

【讨论】:

以上是关于设备驱动程序入口点访问的主要内容,如果未能解决你的问题,请参考以下文章

13.5 低功耗蓝牙设备的访问

linux目录结构

张明贵-Linux常用的目录-3

Linux目录结构

设备驱动简介

2017-2018-1 20179205《Linux内核原理与设计》第十周作业