⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pci.c.txt

📁 linux内核学习笔记 希望想看的人可以很快下载到
💻 TXT
字号:
any problem, send mail to lysindybear@sina.com.cn

相关文件
	/include/pci.h
	/drivers/pcmcia/cardbus.c
	

**************************基本数据结构***********************************
LIST_HEAD(pci_root_buses);
LIST_HEAD(pci_devices);		//所有监测到的pci设备都连接到这个结构后面
*************************************************************************


**************************pci设备初始化函数(老式)****************************
(1)pci_find_device(unsigned int vendor, unsigned int device, const struct pci_dev from)
	调用pci_find_subsys,对pci上的所有的设备进行遍历来找到所需的设备


寻找pci总线上的设备,如果from是空的话,就寻找一个新的设备,
(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后面搜索
	……
	找到的话,就返回一个pci_dev的结构,否则返回null

(2)pci_enable_device(struct pci_dev *dev)	//初始化pci设备
	pci_set_power_state(dev, 0);		//设置电源管理功能
	pcibios_enable_device(dev)		//在arch/i386/kernel/pci-i386.c中
*****************************************************************************


**************************pci设备dma方式函数*********************************
(1)pci_set_dma_mask(struct pci_dev *dev, u64 mask)	//设置dma的寻址范围。
	dev->dma_mask = mask;				//记下来mask
	
*****************************************************************************



****************************pci设备对外的使用********************************
这个函数主要提供将检测到的pci设备加入到系统变量中的作用
pci_insert_device(struct pci_dev *dev, struct pci_bus *bus)	
	list_add_tail(&dev->bus_list, &bus->devices);	//加入到相对应的总线上
        list_add_tail(&dev->global_list, &pci_devices);	//加入到pci_devices全局变量上

*****************************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -