lspci源码(pciutils)实现分析

4 篇文章 2 订阅
首先lspci -h能显示出所有的register,我们通常用-x来读所有的数据:
        -x              Show hex-dump of the standard part of the config space
        -xxx            Show hex-dump of the whole config space (dangerous; root only)
        -xxxx           Show hex-dump of the 4096-byte extended config space (root only)


注意如果想读出来config space 0x3F以后的值,需要在root权限下。


        其中lspci的基本流程:pci_alloc-->pci_init-->scan_devices-->sort_them-->show-->pci_cleanup
        详细流程为:
                pci_alloc功能:得到一个pci_access实体。
                pci_init功能:查询存在的pci_methods,并匹配pci_access实体,为真则初始化pci_access中的methods,methods具体由OS支持。
                scan_devices功能:扫描pci_access实体所在总线,得到该总线上所有设备。
                sort_them功能:把所有pci设备按照域、总线号、设备号、功能号排序。
                show功能:调用show_device函数,根据命令行输入的参数(-x或-xxxx),执行show_hex_dump函数,打印对应信息。
                pci_cleanup功能:释放pci_access所占资源。

        核心还是struct pci_access和struct pci_methods
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术在路上

帮助需要的人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值