获取PCI总线上任何配置头信息
书上用的是传到驱动层,然后在操作端口,获取的数据在应用层显示。不过这种方法不是很喜欢,比较喜欢在驱动层开启I/O位图位,然后让应用层拥有端口操作权限。所以,在看本博文之前,请先熟悉之前的关于在应用层开启端口操作权限的相关函数讲解的博文,写好一个驱动,能开启端口读取权限。然后再继续阅读本文。
以下是类型0的PCI配置结构:

如果看不懂,那需要回去复习数据结构基础哦。这个图很简单,总共256个字节。自己可以写一个结构去接受这个数据,但是书上给了现成的,我也就偷偷懒,注释了1一个重要的地方(40h-FFh)。下面来看看书上结构的巧妙之处。下面三个常量,便是3种类型中基地址数组大小。(下面结构是一起的,只是分了几张图发,方便讲解)

类型0配置头不同的地方


类型1配置头不同的地方

类型2配置头的不同

类型2配置头的不同

这里充分说明union联合声明的好用。
关键词:
PCI总线配置头信
评论