1. 程式人生 > >Linux之module_param()--給模塊傳遞參數

Linux之module_param()--給模塊傳遞參數

module

1. 用戶態下編程: 通過main()來傳遞命令行參數

編寫一個內核模塊: 通過module_param()來傳遞命令行參數


2. module_param宏是Linux 2.6內核中新增的,該宏被定義在include/linux/moduleparam.h文件中


3. module_param使用了3個參數:變量名,它的類型,以及一個權限掩碼用來做一個輔助的sysfs入口

module_param(name, type, perm);

name既是用戶看到的參數名,又是模塊內接受參數的變量;

type表示參數的數據類型,是下列之一:byte, short, ushort, int, uint, long, ulong, charp, bool, invbool;

perm指定了在sysfs中相應文件的訪問權限。訪問權限與linux文件愛你訪問權限相同的方式管理,如0644,或使用stat.h中的宏如S_IRUGO表示。


4. 在使用宏之前,必須聲明變量,典型地用法如下:

static unsigned int int_var = 0;

module_param(int_var, uint, S_IRUGO);


5. 聲明一個數組參數, 使用 module_param_array(name,type,num,perm);

name 是數組名(也是參數名),

type 是數組元素的類型,

num 是一個整型變量,

perm 是通常的權限值.


6. 實例:sudo insmdo module_param.ko who=tiger times=4


refer: http://www.linuxidc.com/Linux/2011-02/32131.htm

Linux之module_param()--給模塊傳遞參數