c - 从内核获取基地址寄存器的宏是如何工作的

标签 c kernel

我试图了解 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/

相关文章:

在 C 中将 void* 转换为 char*

c - 当我尝试 free() 指针数组中的数组时,程序在特定值上崩溃

c - 如何创建和迭代 graphids 列表(Apache AGE)?

linux - 如何查看内核函数和系统调用的地址?

kernel - 纳米内核和外内核有什么区别?

用于检查内存完整性的 Linux 内核模块

c - scanf 忽略,无限循环

c - 通用堆栈停止弹出值

linux - 编译linux内核时出错

python - 在Conda环境中安装python内核