婷婷综合国产,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內核模塊加載機制筆記整理的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 思南县| 怀柔区| 博罗县| 兴业县| 晋州市| 海南省| 正定县| 靖安县| 洛阳市| 太湖县| 高雄县| 五河县| 白城市| 宁陕县| 平阳县| 桐柏县| 五家渠市| 巴林右旗| 胶州市| 平罗县| 苗栗县| 三都| 南丰县| 布尔津县| 南部县| 彭州市| 石柱| 西乌| 定兴县| 庆元县| 关岭| 科尔| 泽州县| 杭锦后旗| 东宁县| 平安县| 衡水市| 青铜峡市| 电白县| 丰原市| 南岸区|