我想了解pci_resource_start函数的工作所以我通过cscope浏览代码并搜索字符串pci_resource_start并在pci.h中得到以下内容
#define pci_resource_start(dev, bar) ((dev)->resource[(bar)].start)
Run Code Online (Sandbox Code Playgroud)
我无法理解上面的宏是如何工作的.上面的宏如何在配置空间中获得适当的基址寄存器?
宏的目的仅仅是提高源代码的可读性,它不会导致任何地址被检索.实际上,在startPCI总线和/或设备被扫描/初始化时,早先已经发现了地址(由成员表示).(在这种情况下,"开始"也意味着"地址范围的开始"而不是"开始做某事".)最有可能在其中一个文件中找到此信息pci.c.