您好,登錄后才能下訂單哦!
這篇文章主要講解了“module_param()怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“module_param()怎么使用”吧!
聲明一變量
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表示。
0表示完全關閉在sysfs中相對應的項。
也可以使模塊源文件內部的變量名與外部的參數名有不同的名字,通過module_param_named()定義。
module_param_named(name, variable, type, perm);
name是外部可見的參數名,
variable是源文件內部的全局變量名,而module_param通過module_param_named實現,只不過name與variable相同。
另一種方法是通過宏module_param_string()讓內核把字符串直接復制到程序中的字符數組內。
module_param_string(name, string, len, perm);
這里,name是外部的參數名,
string是內部的變量名,
len是以string命名的buffer大小(可以小于buffer的大小,但是沒有意義),
perm表示sysfs的訪問權限(或者perm是零,表示完全關閉相對應的sysfs項)。
如果需要傳遞多個參數可以通過宏module_param_array()實現。外部參數內部調用;
module_param_array(name, type, nump, perm);
name既是外部模塊的參數名又是程序內部的變量名,
type是數據類型,
perm是sysfs的訪問權限。指針nump指向一個整數,其值表示有多少個參數存放在數組name中。值得注意是name數組必須靜態分配。
模塊參數支持許多類型:
bool
invbool
一個布爾型( true 或者 false)值(相關的變量應當是 int 類型). invbool 類型顛倒了值,所以真值變成 false, 反之亦然.
charp
一個字符指針值. 內存為用戶提供的字串分配, 指針因此設置.
int
long
short
uint
ulong
ushort
基本的變長整型值. 以 u 開頭的是無符號值.
數組參數, 用逗號間隔的列表提供的值, 模塊加載者也支持. 聲明一個數組參數, 使用:
module_param_array(name,type,num,perm);
這里 name 是你的數組的名子(也是參數名),
type 是數組元素的類型,
num 是一個整型變量,
perm 是通常的權限值.
如果數組參數在加載時設置, num 被設置成提供的數的個數. 模塊加載者拒絕比數組能放下的多的值.
感謝各位的閱讀,以上就是“module_param()怎么使用”的內容了,經過本文的學習后,相信大家對module_param()怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。