您好,登錄后才能下訂單哦!
頭文件在“include/linux/moduleparam.h”
– module_param(name,type,perm)
– name:模塊參數的名稱
– type: 模塊參數的數據類型(支持int long short uint ulong ushort類
型)
– perm: 模塊參數的訪問權限(S_IRUSR參數表示所有文件所有者
可讀)
– name:模塊參數的名稱
– type: 模塊參數的數據類型(支持int long short uint ulong ushort類
型)
– nump:保存參數個數的地址
– perm: 模塊參數的訪問權限(S_IRUSR參數表示所有文件所有者
可讀)
參數perm表示此參數在sysfs文件系統中所對應的文件節點的屬性,其權限在
include/linux/stat.h中有定義。
? 變量perm
– #defineS_IRUSR 00400文件所有者可讀
– #defineS_IWUSR00200文件所有者可寫
– #defineS_IXUSR 00100文件所有者可執行
– #defineS_IRGRP00040與文件所有者同組的用戶可讀
– #defineS_IWGRP00020
– #defineS_IXGRP 00010
– #defineS_IROTH 00004與文件所有者不同組的用戶可讀
– #defineS_IWOTH00002
– #defineS_IXOTH 00001
? 將數字最后三位轉化為二進制:xxx xxx xxx,高位往低位依次看,第一位為1表示文
件所有者可讀,第二位為1表示文件所有者可寫,第三位為1表示文件所有者可執
行;接下來三位表示文件所有者同組成員的權限;再下來三位為不同組用戶權限
*定義module_param module_param_array的頭文件*/#include <linux/moduleparam.h>/*定義module_param module_param_array中perm的頭文件*/#include <linux/stat.h>MODULE_LICENSE("Dual BSD/GPL");/*聲明是開源的,沒有內核版本限制*/MODULE_AUTHOR("iTOPEET_dz");/*聲明作者*/static int module_arg1,module_arg2;static int int_array[50];static int int_num; module_param(module_arg1,int,S_IRUSR); module_param(module_arg2,int,S_IRUSR); module_param_array(int_array,int,&int_num,S_IRUSR);static int hello_init(void){ int i; printk(KERN_EMERG "module_arg1 is %d!\n",module_arg1); printk(KERN_EMERG "module_arg2 is %d!\n",module_arg2); for(i=0;i<int_num;i++){ printk(KERN_EMERG "int_array[%d] is %d!\n",i,int_array[i]); } printk(KERN_EMERG "Hello World enter!\n"); /*打印信息,KERN_EMERG表示緊急信息*/ return 0; }
insmod /mnt/udisk/module_param.ko module_arg1=10 module_arg2=20
int_array=11,12,13,14,15,16,17,18
cat /sys/module/module_param/parameters/xxx 可以查詢參數
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。