【问题标题】:Where can I find definition of struct proc_dir_entry我在哪里可以找到 struct proc_dir_entry 的定义
【发布时间】:2014-11-10 02:02:39
【问题描述】:

我最近在尝试写一个linux内核模块。

我需要创建一个 proc 文件。

根据网上的linux交叉引用文件,proc_dir_entry应该在fs/proc/internal.h。

但是我的 Ubuntu 14.04 给我“没有这样的文件或目录”

uname -r:

3.13.0-29-generic

【问题讨论】:

  • 是的,那是exactly where it is。你面前有未解压的内核源代码吗?你为什么要尝试使用这种“内部”结构?
  • 我需要将指向该结构的指针传递给 proc_create()。但是我需要取消引用指针来初始化结构。这样的操作让我“取消引用不完整的类型”
  • 显示您的代码。在<linux/proc_fs.h> 中有一个proc_dir_entry 的前向声明 - 你不需要知道它的实际定义,因为你不需要初始化它的任何成员。
  • 例如,请参阅vmstat.h 中的此示例。他们将NULL 传递给parent,因为他们希望他们的条目位于/proc 的根目录中。再次显示代码的相关部分。
  • 我想我现在可以自己回答我的问题了。就像你说的,我们不需要知道实际的定义。我只需要设置在 fs.h 中定义的 file_operation 结构。我被这篇文章误导了tldp.org/LDP/lkmpg/2.6/html/lkmpg.html#AEN708

标签: c linux linux-kernel linux-device-driver


【解决方案1】:

需要安装内核头包

  sudo apt-get install linux-headers-$(uname -r)

【讨论】:

  • 是的,我检查了linux头包的版本。我手动添加了结构定义以通过编译。我认为必须有另一种方式
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 2010-11-13
相关资源
最近更新 更多