<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 2.10.?快速參考 本節總結了我們在本章接觸到的內核函數, 變量, 宏定義, 和 /proc 文件. 它的用意是作為一個參考. 每一項列都在相關頭文件的后面, 如果有. 從這里開始, 在幾乎每章的結尾會有類似一節, 總結一章中介紹的新符號. 本節中的項通常以在本章中出現的順序排列: ~~~ insmod modprobe rmmod ~~~ 用戶空間工具, 加載模塊到運行中的內核以及去除它們. ~~~ #include <linux/init.h> module_init(init_function); module_exit(cleanup_function); ~~~ 指定模塊的初始化和清理函數的宏定義. ~~~ __init __initdata __exit __exitdata ~~~ 函數( __init 和 __exit )和數據 (__initdata 和 __exitdata)的標記, 只用在模塊初始化或者清理時間. 為初始化所標識的項可能會在初始化完成后丟棄; 退出的項可能被丟棄如果內核沒有配置模塊卸載. 這些標記通過使相關的目標在可執行文件的特定的 ELF 節里被替換來工作. ~~~ #include <linux/sched.h> ~~~ 最重要的頭文件中的一個. 這個文件包含很多驅動使用的內核 API 的定義, 包括睡眠函數和許多變量聲明. ~~~ struct task_struct *current; ~~~ 當前進程. ~~~ current->pidcurrent->comm ~~~ 進程 ID 和 當前進程的命令名. obj-m 一個 makefile 符號, 內核建立系統用來決定當前目錄下的哪個模塊應當被建立. ~~~ /sys/module /proc/modules ~~~ /sys/module 是一個 sysfs 目錄層次, 包含當前加載模塊的信息. /proc/moudles 是舊式的, 那種信息的單個文件版本. 其中的條目包含了模塊名, 每個模塊占用的內存數量, 以及使用計數. 另外的字串追加到每行的末尾來指定標志, 對這個模塊當前是活動的. vermagic.o 來自內核源碼目錄的目標文件, 描述一個模塊為之建立的環境. ~~~ #include <linux/module.h> ~~~ 必需的頭文件. 它必須在一個模塊源碼中包含. ~~~ #include <linux/version.h> ~~~ 頭文件, 包含在建立的內核版本信息. ~~~ LINUX_VERSION_CODE ~~~ 整型宏定義, 對 #ifdef 版本依賴有用. ~~~ EXPORT_SYMBOL (symbol); EXPORT_SYMBOL_GPL (symbol); ~~~ 宏定義, 用來輸出一個符號給內核. 第 2 種形式輸出沒有版本信息, 第 3 種限制輸出給 GPL 許可的模塊. ~~~ MODULE_AUTHOR(author); MODULE_DESCRIPTION(description); MODULE_VERSION(version_string); MODULE_DEVICE_TABLE(table_info); MODULE_ALIAS(alternate_name); ~~~ 放置文檔在目標文件的模塊中. ~~~ module_init(init_function); module_exit(exit_function); ~~~ 宏定義, 聲明一個模塊的初始化和清理函數. ~~~ #include <linux/moduleparam.h> module_param(variable, type, perm); ~~~ 宏定義, 創建模塊參數, 可以被用戶在模塊加載時調整( 或者在啟動時間, 對于內嵌代碼). 類型可以是 bool, charp, int, invbool, short, ushort, uint, ulong, 或者 intarray. ~~~ #include <linux/kernel.h> int printk(const char * fmt, ...); ~~~ 內核代碼的 printf 類似物.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看