婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux內核設備驅動之Linux內核模塊加載機制筆記整理

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

熱門標簽:廈門營銷外呼系統平臺 涪陵商都400電話開通辦理 外呼系統的經營范圍 申請400電話價格多少 安陽ai電銷機器人軟件 外呼系統不彈窗 智能電話機器人坐席 云會外呼系統 柳州市機器人外呼系統報價

#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 查看當前系統的符號表

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

標簽:晉城 綏化 巴中 南充 蕪湖 孝感 撫順 福州

巨人網絡通訊聲明:本文標題《Linux內核設備驅動之Linux內核模塊加載機制筆記整理》,本文關鍵詞  Linux,內核,設備驅動,之,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux內核設備驅動之Linux內核模塊加載機制筆記整理》相關的同類信息!
  • 本頁收集關于Linux內核設備驅動之Linux內核模塊加載機制筆記整理的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 三原县| 宁陵县| 江口县| 申扎县| 剑川县| 花垣县| 漳平市| 凌海市| 平安县| 集安市| 东乡| 东源县| 新蔡县| 醴陵市| 瑞金市| 泰安市| 伊宁市| 子洲县| 克拉玛依市| 泰顺县| 琼结县| 正蓝旗| 白河县| 类乌齐县| 克拉玛依市| 海晏县| 杭州市| 乐东| 运城市| 柳林县| 淳安县| 黄冈市| 建昌县| 桑植县| 屯门区| 讷河市| 宁国市| 缙云县| 南城县| 兰坪| 中阳县|