我有2个模块mod_1.ko& mod_2.ko与fun_1()& fun_2()分别在其中定义。我导出了这些功能,想要使用fun_1& mod_2.ko&中的fun_2 mod_1.ko。我该如何进行..?
答案 0 :(得分:1)
如果您明确使用它(您可以从mod_2.ko调用fun_1,从mod_1.ko调用fun_2),那么内核将不允许您加载模块。发生这种情况是因为它读取符号表并查找内核现有模块 - 您可以在/ proc / kallsyms中看到的模块。所以mod_1有fun_2参考,需要加载mod_2。 mod_2有fun_1参考,需要加载mod_1。你有依赖锁)
我可以为您的问题考虑两种解决方案:
find_symbol
的帮助下隐含地执行此操作。你声明了函数指针,然后通过调用find_symbol
在运行时解析该指针,然后通过函数指针调用你的函数。