国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

Linux內核設備驅動之Linux內核模塊加載機制筆記整理

2024-09-05 23:05:26
字體:
來源:轉載
供稿:網友

#include <linux/moduleparam.h>

1. 模塊參數

在驅動定義變量

static int num = 0; //當加載模塊不指定num的值時則為0
  • module_param(變量名, 類型, 權限);類型: byte, int, uint, short, ushort, long, ulong, bool, charp,權限不能有寫的權限
  • 傳參數: insmod test.ko 變量名1=值1  變量名2=值2

module_param的調用關系如下:

#define module_param(name, type, perm) /module_param_named(name, name, type, perm)#define module_param_named(name, value, type, perm)  /param_check_##type(name, &(value));  /module_param_call(name, param_set_##type, param_get_##type, &value, perm); /__MODULE_PARM_TYPE(name, #type)#define module_param_call(name, set, get, arg, perm)   /__module_param_call(MODULE_PARAM_PREFIX,   /  name, set, get, arg,   /  __same_type(*(arg), bool), perm)#define __module_param_call(prefix, name, set, get, arg, isbool, perm) /static int __param_perm_check_##name __attribute__((unused)) = /BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2)) /+ BUILD_BUG_ON_ZERO(sizeof(""prefix) > MAX_PARAM_PREFIX_LEN); /static const char __param_str_##name[] = prefix #name; /static struct kernel_param __moduleparam_const __param_##name /__used /  __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) /= { __param_str_##name, perm, isbool ? KPARAM_ISBOOL : 0, /  set, get, { arg } }

多個c文件編成一個模塊,可以使用xxx-objs這個Makefile中的指令來實現,如下:

test-objs := a.o b.o //由a.c, b.c 編成test.ko, 注意不能有.o文件與目標ko文件同名obj-m += test.o

可在/sys/module/模塊名/下查看模塊在系統的信息

1. 查看elf文件的信息

readelf test.ko -a

ko文件組成

  • 1. elf文件頭
  • 2. text data ...
  • 3. sections table
  • 4. symbol table

2. EXPORT_SYMBOL(函數名/變量的地址) //把函數/或者變量的地址導出到內核的符號表中

EXPORT_SYMBOL_GPL(函數名)///////////

/proc/kallsyms 查看當前系統的符號表

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 略阳县| 陆川县| 成安县| 扎赉特旗| 神木县| 云浮市| 宁阳县| 宁南县| 东辽县| 九龙县| 个旧市| 黔西| 宁陕县| 馆陶县| 怀柔区| 浑源县| 凌海市| 恭城| 平昌县| 大田县| 迁西县| 龙岩市| 丹江口市| 固安县| 荣成市| 惠水县| 宁陕县| 崇礼县| 寻甸| 永康市| 安图县| 光泽县| 读书| 宜昌市| 冕宁县| 博野县| 渝中区| 喀喇| 宁城县| 霸州市| 徐水县|