簡體   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