我正试图在 linux 模块中分配一大块内存,而 kalloc
做不到。
我知道唯一的方法是使用 alloc_bootmem(unsigned long size)
但我只能从 linux 内核而不是模块分配它。
所以我想出了这个解决方案:
我将向内核添加分配内存并返回指向它的指针的函数。 然后我将在模块中使用这个函数。
这是适合我的情况的最佳解决方案吗?正如我所说,我需要处理一大块内存...
另外,我如何从内核中导出一个函数并在模块中使用它?如何使指向数据 block 的指针可供模块使用?
最佳答案
这就是你要做的:
在带有符号的内核文件中,在符号前添加如下头文件
#include <linux/module.h>
<here there should be the declaration of the symbol>
现在在符号后面加上这个
EXPORT_SYMBOL(<name of the symbol>);
例如:
#include <linux/module.h>
int (*foo)(void);
EXPORT_SYMBOL(foo);
完成!
关于linux - 将 linux 内核中的函数导出到 linux 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508487/