我试图了解 pci_resource_start 函数的工作原理 所以我通过 cscope 浏览代码并搜索字符串 pci_resource_start 并在 pci.h 中得到关注
#define pci_resource_start(dev, bar) ((dev)->resource[(bar)].start)
我无法理解上面的宏是如何工作的。 上面的宏如何获取适当的基地址寄存器 配置空间?
最佳答案
该宏的目的只是为了提高源代码的可读性,它不会导致检索任何地址。事实上,当 PCI 总线和/或设备被扫描/初始化时,地址(由 start
成员表示)就已经被发现了。 (在这种情况下,“开始”也意味着“地址范围的开始”,而不是“开始做某事”。)
有关详细信息最有可能在名为 pci.c
的文件之一中找到。
关于c - 从内核获取基地址寄存器的宏是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4241939/