最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

簡單分析Linux內(nèi)核基礎(chǔ)篇——initcall

2023-03-21 15:28 作者:補給站Linux內(nèi)核  | 我要投稿


寫過Linux驅(qū)動的人都知道module_init宏,因為它聲明了一個驅(qū)動的入口函數(shù)。

除了module_init宏,你會發(fā)現(xiàn)在Linux內(nèi)核中有許多的驅(qū)動并沒有使用module_init宏來聲明入口函數(shù),而是看到了許多諸如以下的聲明:

上述舉例的兩個驅(qū)動入口分別使用了device_initcall()arch_initcall()來聲明驅(qū)動入口,這些本質(zhì)上都是對initcall的調(diào)用,module_init也如此。

initcall等級

Linux內(nèi)核對initcall進(jìn)行了等級劃分,每一種類型的initcall都有對應(yīng)等級,等級0-7。

路徑:include/init/init.h

id越小等級越高,Linux會按照等級由高到低順序執(zhí)行:

這么做的目的主要是根據(jù)優(yōu)先級依次對設(shè)備進(jìn)行初始化,例如會先初始化與架構(gòu)相關(guān)的,然后再初始化內(nèi)核子系統(tǒng)。


【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)? ??


Linux對initcall的調(diào)用

在Linux啟動時,會依次遍歷所有等級的initcall,以完成一系列的初始化。

initcall的調(diào)用流程:

do_initcalls()函數(shù)中,會遍歷所有等級的initcall,完成初始化。

do_initcall_level()會執(zhí)行對應(yīng)等級下的所有函數(shù):

module_init等級

module_init宏使用的是device_initcall,等級為6

在一些內(nèi)核驅(qū)動中,直接使用了device_initcall()來聲明驅(qū)動入口,其效果與使用module_init是一樣的。

原文作者:嵌入式Linux充電站





簡單分析Linux內(nèi)核基礎(chǔ)篇——initcall的評論 (共 條)

分享到微博請遵守國家法律
调兵山市| 新乐市| 罗平县| 太康县| 石渠县| 武鸣县| 江油市| 鹤山市| 临武县| 乐都县| 苏尼特左旗| 九龙坡区| 离岛区| 桐乡市| 永定县| 巴中市| 紫云| 临城县| 大庆市| 永兴县| 探索| 固安县| 鄂托克前旗| 色达县| 通道| 关岭| 武陟县| 苏尼特右旗| 乐安县| 茌平县| 铜鼓县| 建德市| 突泉县| 天津市| 南投市| 图木舒克市| 民乐县| 民丰县| 梓潼县| 巫山县| 诏安县|