<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 12.8.?快速參考 本節總結在本章中介紹的符號: ~~~ #include <linux/pci.h> ~~~ 包含 PCI 寄存器的符號名和幾個供應商和設備 ID 值的頭文件. ~~~ struct pci_dev; ~~~ 表示內核中一個 PCI 設備的結構. ~~~ struct pci_driver; ~~~ 代表一個 PCI 驅動的結構. 所有的 PCI 驅動必須定義這個. ~~~ struct pci_device_id; ~~~ 描述這個驅動支持的 PCI 設備類型的結構. ~~~ int pci_register_driver(struct pci_driver *drv); int pci_module_init(struct pci_driver *drv); void pci_unregister_driver(struct pci_driver *drv); ~~~ 從內核注冊或注銷一個 PCI 驅動的函數. ~~~ struct pci_dev *pci_find_device(unsigned int vendor, unsigned int device, struct pci_dev *from); struct pci_dev *pci_find_device_reverse(unsigned int vendor, unsigned int device, const struct pci_dev *from); struct pci_dev *pci_find_subsys (unsigned int vendor, unsigned int device, unsigned int ss_vendor, unsigned int ss_device, const struct pci_dev *from); struct pci_dev *pci_find_class(unsigned int class, struct pci_dev *from); ~~~ 在設備列表中搜尋帶有一個特定簽名的設備, 或者屬于一個特定類的. 返回值是 NULL 如果沒找到. from 用來繼續一個搜索; 在你第一次調用任一個函數時它必須是 NULL, 并且它必須指向剛剛找到的設備如果你尋找更多的設備. 這些函數不推薦使用, 用 pci_get_ 變體來代替. ~~~ struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device, struct pci_dev *from); struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device, unsigned int ss_vendor, unsigned int ss_device, struct pci_dev *from); struct pci_dev *pci_get_slot(struct pci_bus *bus, unsigned int devfn); ~~~ 在設備列表中搜索一個特定簽名的設備, 或者屬于一個特定類. 返回值是 NULL 如果沒找到. from 用來繼續一個搜索; 在你第一次調用任一個函數時它必須是 NULL, 并且它必須指向剛剛找到的設備如果你尋找更多的設備. 返回的結構使它的引用計數遞增, 并且在調用者完成它, 函數 pci_dev_put 必須被調用. ~~~ int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val); int pci_read_config_word(struct pci_dev *dev, int where, u16 *val); int pci_read_config_dword(struct pci_dev *dev, int where, u32 *val); int pci_write_config_byte (struct pci_dev *dev, int where, u8 *val); int pci_write_config_word (struct pci_dev *dev, int where, u16 *val); int pci_write_config_dword (struct pci_dev *dev, int where, u32 *val); ~~~ 讀或寫 PCI 配置寄存器的函數. 盡管 Linux 內核負責字節序, 程序員必須小心字節序當從單個字節組合多字節值時. PCI 總線是小端. ~~~ int pci_enable_device(struct pci_dev *dev); ~~~ 使能一個 PCI 設備. ~~~ unsigned long pci_resource_start(struct pci_dev *dev, int bar); unsigned long pci_resource_end(struct pci_dev *dev, int bar); unsigned long pci_resource_flags(struct pci_dev *dev, int bar); ~~~ 處理 PCI 設備資源的函數.
                  <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>

                              哎呀哎呀视频在线观看