PCI驱动程序中何时对struct pci_dev进行初始化的?
我看了一些PCI驱动程序的源代码,好像没发现对struct pci_dev进行初始化的地方,比如在下面这些函数中直接用的
int probe(struct pci_dev *pdev,const struct pci_device_id *pci_id);
是不是内核在启动的时候已经对所有的物理设备进行了扫描,并建立起对这些设备进行组织的数据结构,同时对pci_dev
以及描述其他设备的结构进行了初始化,所以程序中可以拿来直接用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在linux内核模块中,有的是在系统启动时就自动加载的;有的是系统启动后,根据需要手动加载的。PCI作为系统中最重要的设备之一,肯定是自动加载的。
是不是内核在启动的时候已经对所有的物理设备进行了扫描,并建立起对这些设备进行组织的数据结构,同时对pci_dev
以及描述其他设备的结构进行了初始化,所以程序中可以拿来直接用?
-------------------------------------------------
是的..
去看看linux内核情景分析pci总线那章,详细的有点过分。