?? pci.c.txt
字號:
any problem, send mail to lysindybear@sina.com.cn
相關(guān)文件
/include/pci.h
/drivers/pcmcia/cardbus.c
**************************基本數(shù)據(jù)結(jié)構(gòu)***********************************
LIST_HEAD(pci_root_buses);
LIST_HEAD(pci_devices); //所有監(jiān)測到的pci設(shè)備都連接到這個(gè)結(jié)構(gòu)后面
*************************************************************************
**************************pci設(shè)備初始化函數(shù)(老式)****************************
(1)pci_find_device(unsigned int vendor, unsigned int device, const struct pci_dev from)
調(diào)用pci_find_subsys,對pci上的所有的設(shè)備進(jìn)行遍歷來找到所需的設(shè)備
尋找pci總線上的設(shè)備,如果from是空的話,就尋找一個(gè)新的設(shè)備,
(2)pci_find_subsys(unsigned int vendor, unsigned int device,
unsigned int ss_vendor, unsigned int ss_device,
const struct pci_dev *from)
struct list_head *n = from ? from->global_list.next : pci_devices.next;
如果from是空的話,就從全局變量pci_devices中來搜索,否則從給定的from后面搜索
……
找到的話,就返回一個(gè)pci_dev的結(jié)構(gòu),否則返回null
(2)pci_enable_device(struct pci_dev *dev) //初始化pci設(shè)備
pci_set_power_state(dev, 0); //設(shè)置電源管理功能
pcibios_enable_device(dev) //在arch/i386/kernel/pci-i386.c中
*****************************************************************************
**************************pci設(shè)備dma方式函數(shù)*********************************
(1)pci_set_dma_mask(struct pci_dev *dev, u64 mask) //設(shè)置dma的尋址范圍。
dev->dma_mask = mask; //記下來mask
*****************************************************************************
****************************pci設(shè)備對外的使用********************************
這個(gè)函數(shù)主要提供將檢測到的pci設(shè)備加入到系統(tǒng)變量中的作用
pci_insert_device(struct pci_dev *dev, struct pci_bus *bus)
list_add_tail(&dev->bus_list, &bus->devices); //加入到相對應(yīng)的總線上
list_add_tail(&dev->global_list, &pci_devices); //加入到pci_devices全局變量上
*****************************************************************************
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -