裝置初始化函式巨集

2021-05-31 23:32:51 字數 984 閱讀 2069

初始化**的記憶體結構  

_init_begin -------------------

| .init.text | ---- __init

|-------------------|

| .init.data | ---- __initdata

_setup_start |-------------------|

| .init.setup | ---- __setup_param

__initcall_start |-------------------|

| .initcall1.init | ---- core_initcall

|-------------------|

| .initcall2.init | ---- postcore_initcall

|-------------------|

| .initcall3.init | ---- arch_initcall

|-------------------|

| .initcall4.init | ---- subsys_initcall

|-------------------|

| .initcall5.init | ---- fs_initcall

|-------------------|

| .initcall6.init | ---- device_initcall

|-------------------|

| .initcall7.init | ---- late_initcall

__initcall_end |-------------------|

| || ... ... ... |

| |__init_end -------------------

初始化**的特點是:在系統啟動執行,且一旦執行後馬上退出記憶體,不再占用記憶體。

對於驅動程式模組來說,這些優化標記使用的情況如下:

初始化 鍵盤裝置

1 bool initinput hwnd hwnd 216 第二步 建立裝置,滑鼠,鍵盤等。17 res pinput createdevice 18 guid syskeyboard,裝置的guid,這裡使用定義好的 19 pkeyboard,裝置指標 20null 21if succeeded...

核心初始化優化巨集 ,初始化順序, init,

來自 http www.17xie.com read 54054.html 核心使用了大量不同的巨集來標記具有不同作用的函式和資料結構。如巨集 init devinit 等。這些巨集在include linux init.h 標頭檔案中定義。編譯器通過這些巨集可以把 優化放到合適的記憶體位置,以減少...

核心初始化優化巨集 ,初始化順序, init,

核心使用了大量不同的巨集來標記具有不同作用的函式和資料結構。如巨集 init devinit 等。這些巨集在include linux init.h 標頭檔案中定義。編譯器通過這些巨集可以把 優化放到合適的記憶體位置,以減少記憶體占用和提高核心效率。下面是一些常用的巨集 init 標記核心啟動時使用...