在Linux內核模塊中,module_param
宏用于定義模塊參數
#include<linux/module.h>
#include<linux/kernel.h>
my_param
的整數變量,并為其分配一個默認值:static int my_param = 42;
module_param
宏將此變量導出為模塊參數。為了設置默認值,我們已經在第2步中為變量分配了一個值。module_param
宏的第一個參數是變量名,第二個參數是變量類型,第三個參數是權限(通常為S_IRUGO
,表示只讀):module_param(my_param, int, S_IRUGO);
編譯并加載模塊。現在,當模塊加載時,my_param
將具有默認值42。
若要在加載模塊時更改my_param
的值,可以在insmod
命令后面添加my_param=<new_value>
。例如,要將my_param
設置為100,可以運行以下命令:
sudo insmod your_module.ko my_param=100
這樣,在模塊加載時,my_param
將具有值100,而不是默認值42。