我正在开发一个应用程序(用户空间),它通过网络发送值更改通知。
我想开发一个内核模块(A),以便在其他内核模块(B)中的参数值发生变化时通知我的应用程序(用户空间)。
答案 0 :(得分:2)
在模块B中定义一个标头,就像普通的C标头一样,包括A想要使用的变量/函数,当然还有#include
在A中。
在B的一个源文件中,写:
EXPORT_SYMBOL(your_symbol);
表示每个变量/函数。
在模块A的Makefile中,确保在KBUILD_EXTRA_SYMBOLS
中添加B的Module.symvers路径以消除依赖性警告,并且如果已使用{配置了内核,则能够加载模块{1}}
如果那些不可用(我相信它们不可用),你总是可以简单地写一个/ sys或/ proc文件,输出一个简单的0/1,显示用户空间应用程序是否需要发信号。然后,用户空间应用程序可以轮询该文件。