【问题标题】:How do I share data between 2 FreeBSD kernel modules?如何在 2 个 FreeBSD 内核模块之间共享数据?
【发布时间】:2019-03-30 17:07:58
【问题描述】:

我的嵌入式设备中有多个内核模块,用于处理 LCD、触摸屏、串行端口等操作。

一个内核模块能够读取PCB版本。

我希望我的 LCD 模块也能够读取 PCB 版本。最简单的方法是先加载 PCB 版本模块,然后让 LCD 模块向它询问版本。

两个模块都是可加载的 .ko,都是我写的。

有没有简单的方法:

  1. 从一个模块调用另一个模块?
  2. 读取另一个模块中的全局变量?
  3. 从一个模块调用 ioctl 到另一个模块?

我的偏好是#3。

【问题讨论】:

    标签: kernel freebsd kernel-module


    【解决方案1】:

    部分答案:

    调用另一个模块中的函数:

    1. 将 MODULE_DEPEND 宏放在本地模块的顶部以 a) 确保首先加载另一个模块,并且 b) 您能够链接到它的函数。不确定b。例如:

      MODULE_DEPEND(lcd_mod, timer_mod, 1, 1, 1);

    2. 在本地模块中声明远程函数。

    3. 只需调用远程函数。

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 1970-01-01
      • 2017-09-06
      • 2015-10-08
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多