我開發了兩個簡單的模塊到內核。現在我想在一個模塊中定義一個函數,然後在另一個模塊中使用它。如何在一個linux內核模塊中定義一個函數並在另一個內核模塊中使用它?
我怎樣才能做到這一點?
只要定義沒有問題的其他模塊中的功能和來電?
我開發了兩個簡單的模塊到內核。現在我想在一個模塊中定義一個函數,然後在另一個模塊中使用它。如何在一個linux內核模塊中定義一個函數並在另一個內核模塊中使用它?
我怎樣才能做到這一點?
只要定義沒有問題的其他模塊中的功能和來電?
在module1.c
定義它:
#include <linux/module.h>
int fun(void);
EXPORT_SYMBOL(fun);
int fun(void)
{
/* ... */
}
而且在module2.c
使用它:
extern int fun(void);
我還有一個問題。在目錄/ var/log /中打開文件消息,看看printk完成了購買我的功能。出現如下消息:「模塊許可證」未指定「taints kernel」,「由於內核污染而禁用鎖定調試」。我只是調用一個模塊的功能來在另一個模塊中打印消息。 – Ricardo 2012-03-22 11:01:14
@Ricardo:這與導出函數無關,但僅僅是因爲您沒有定義模塊的許可證。使用'MODULE_LICENSE'宏來做到這一點。 – 2012-03-22 11:10:22
正在工作。謝謝。對於內核映像中的模塊,是相同的過程? – Ricardo 2012-03-22 13:40:49
的可能的複製[如何從另一個調用模塊導出的內核模塊的功能?(HTTP://計算器.com/questions/12311867/how-to-call-exports-kernel-module-functions-from-another-module) – 2017-05-20 12:27:05