linux的pci驱动模型

做个笔记

linux通过pcibios_scan_root函数以深度优先的算法搜索整个pci架构,建立一个树形的链表,如下:

之后再调用pci_bus_add_devices函数把所有搜索到的pci_dev链接到pci_bus_type的klist_devices字段下。当设备驱动通过pci_register_driver注册的时候就会搜索klist_devices里的设备,看是否和驱动支持的设备相匹配。

这个模型需要注意的是pci_root_buses和pci_bus_type两个变量别弄混了,其他都比较好理解。

图片转自:http://www.tldp.org/LDP/tlk/dd/pci.html

原文地址:https://www.cnblogs.com/4a8a08f09d37b73795649038408b5f33/p/10599824.html