W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
本節(jié)總結(jié)在本章中介紹的符號:
#include <linux/pci.h>
包含 PCI 寄存器的符號名和幾個供應商和設(shè)備 ID 值的頭文件.
struct pci_dev;
表示內(nèi)核中一個 PCI 設(shè)備的結(jié)構(gòu).
struct pci_driver;
代表一個 PCI 驅(qū)動的結(jié)構(gòu). 所有的 PCI 驅(qū)動必須定義這個.
struct pci_device_id;
描述這個驅(qū)動支持的 PCI 設(shè)備類型的結(jié)構(gòu).
int pci_register_driver(struct pci_driver *drv);
int pci_module_init(struct pci_driver *drv);
void pci_unregister_driver(struct pci_driver *drv);
從內(nèi)核注冊或注銷一個 PCI 驅(qū)動的函數(shù).
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);
在設(shè)備列表中搜尋帶有一個特定簽名的設(shè)備, 或者屬于一個特定類的. 返回值是 NULL 如果沒找到. from 用來繼續(xù)一個搜索; 在你第一次調(diào)用任一個函數(shù)時它必須是 NULL, 并且它必須指向剛剛找到的設(shè)備如果你尋找更多的設(shè)備. 這些函數(shù)不推薦使用, 用 pciget 變體來代替.
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);
在設(shè)備列表中搜索一個特定簽名的設(shè)備, 或者屬于一個特定類. 返回值是 NULL 如果沒找到. from 用來繼續(xù)一個搜索; 在你第一次調(diào)用任一個函數(shù)時它必須是 NULL, 并且它必須指向剛剛找到的設(shè)備如果你尋找更多的設(shè)備. 返回的結(jié)構(gòu)使它的引用計數(shù)遞增, 并且在調(diào)用者完成它, 函數(shù) pci_dev_put 必須被調(diào)用.
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);
讀或?qū)?PCI 配置寄存器的函數(shù). 盡管 Linux 內(nèi)核負責字節(jié)序, 程序員必須小心字節(jié)序當從單個字節(jié)組合多字節(jié)值時. PCI 總線是小端.
int pci_enable_device(struct pci_dev *dev);
使能一個 PCI 設(shè)備.
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 設(shè)備資源的函數(shù).
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: