在Linux內核模塊中,module_param
宏用于定義一個模塊參數,該參數可以在加載模塊時通過命令行進行設置
#include<linux/module.h>
#include<linux/kernel.h>
module_param
宏。例如,我們定義一個名為my_param
的整數參數:static int my_param = 0;
module_param(my_param, int, S_IRUGO);
這里,int
是參數的類型,S_IRUGO
是參數的權限。S_IRUGO
表示該參數可以被所有用戶讀取。
MODULE_PARM_DESC(my_param, "An example integer parameter");
static int __init my_module_init(void)
{
printk(KERN_INFO "My parameter value: %d\n", my_param);
return 0;
}
static void __exit my_module_exit(void)
{
printk(KERN_INFO "My module is unloaded\n");
}
module_init(my_module_init);
module_exit(my_module_exit);
$ make
$ sudo insmod my_module.ko my_param=42
$ dmesg | tail -n 1
[ 1234.567890] My parameter value: 42
現在,你已經成功地在Linux內核模塊中使用了module_param
來定義一個可配置的參數。