溫馨提示×

Linux 內(nèi)核代碼中的 EXPORT_SYMBOL_GPL 是什么

小云
291
2023-09-27 07:12:31
欄目: 智能運維

EXPORT_SYMBOL_GPL 是一個宏,用于將符號(函數(shù)、變量、結(jié)構(gòu)體等)導(dǎo)出為 Linux 內(nèi)核模塊的全局符號。

在 Linux 內(nèi)核中,一些符號是被標記為 EXPORT_SYMBOL 或 EXPORT_SYMBOL_GPL 的,這意味著它們可以在內(nèi)核模塊中使用。EXPORT_SYMBOL_GPL 和 EXPORT_SYMBOL 的區(qū)別在于,EXPORT_SYMBOL_GPL 導(dǎo)出的符號只能被 GPL 許可證兼容的模塊使用,而 EXPORT_SYMBOL 導(dǎo)出的符號則沒有此限制。

EXPORT_SYMBOL_GPL 宏的定義如下:

#define EXPORT_SYMBOL_GPL(sym) EXPORT_SYMBOL_GPL_NS(GPL, sym)

其中,EXPORT_SYMBOL_GPL_NS 是一個宏定義,用于根據(jù)不同的命名空間導(dǎo)出符號。GPL 是一個命名空間,表示符號只能被 GPL 許可證兼容的模塊使用。

使用 EXPORT_SYMBOL_GPL 宏可以使函數(shù)和變量在編譯時被導(dǎo)出,以供其他內(nèi)核模塊使用。這樣,內(nèi)核模塊可以調(diào)用導(dǎo)出的函數(shù)、訪問導(dǎo)出的變量,實現(xiàn)模塊之間的功能擴展和共享。

0