我浏览了pci-driver.c中的__pci_register_driver(),但找不到pci驱动程序的probe()。哪个内核函数会调用此probe()?谢谢!
答案 0 :(得分:2)
在同一个文件pci-driver.c中有一个名为
的函数static long local_pci_probe(void *_ddi)
{
...
rc = ddi->drv->probe(ddi->dev, ddi->id);
...
}
来电来自struct bus_type pci_bus_type = { .probe = pci_device_probe }
。首先,pci_device_probe()
调用__pci_device_probe()
,调用pci_call_probe()
,调用local_pci_probe()
,然后调用pci驱动程序的probe()
。
答案 1 :(得分:0)
_pci_register_driver的原型在 pci.h 中给出如下:
#define pci_register_driver(driver)__ pci_register_driver(driver,THIS_MODULE,KBUILD_MODNAME)
__ pci_register_driver在pci-driver.c中定义