繁体   English   中英

将linux内核中的函数导出到linux模块

[英]export functions in linux kernel to linux modules

我试图在linux模块中分配很大的内存,而kalloc无法做到。

我知道这样做的唯一方法是使用alloc_bootmem(unsigned long size)但是我只能从linux内核而不是从模块分配它。 所以我想出了这个解决方案:

我将向分配内存的内核添加函数并返回指向它的指针。 然后,我将在模块中使用此功能。

这是针对我的情况的最佳解决方案吗? 就像我说的,我需要处理大量的内存...

另外,如何从内核导出函数并在模块中使用它? 如何使指向数据块的指针可用于模块?

这是你做的:

在带有符号的内核文件中,在符号之前添加以下标头

#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);

完成!

在模块中时,您将无法使用alloc_bootmem。 当您不需要连续空间时,请尝试alloc_pagesvmalloc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM