社区
Linux/Unix社区
帖子详情
怎么样获得PCI槽上的硬件信息?
cpp_pro
2003-04-12 11:39:21
~
...全文
132
3
打赏
收藏
怎么样获得PCI槽上的硬件信息?
~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
honix
2003-04-13
打赏
举报
回复
要得到pci配置空间的信息可通过写0xCF8然后读0xCFC端口实现,把我的一个程序给你看看吧!
/*
* Read the PCI Configuration Register
*
* Author: houaq <houaq@163.com>
*/
#include <sys/io.h>
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#define PCI_CONFIG_ADDR(bus, dev, fn, reg) \
(0x80000000 | (bus << 16) | (dev << 11) | (fn << 8) | (reg & ~3))
void usage()
{
printf("Usage: readpci [-bdfrth]\n\
-b bus : specify PCI bus number(default 0)\n\
-d dev : device number(default 0)\n\
-f fn : function number(default 0)\n\
-r reg : register address(must be multiple of 4, default 0)\n\
-t type: byte length of result(may be 1, 2, 4, default 4)\n\
-h : print this help text\n");
exit(-1);
}
int main(int argc, char **argv)
{
unsigned long val = 0;
char options[] = "b:d:f:r:t:h";
int bus = 0, dev = 0, fn = 0, reg = 0, type = 4;
int opt;
while((opt = getopt(argc, argv, options)) != -1) {
switch(opt) {
case 'b':
bus = atoi(optarg);
break;
case 'd':
dev = atoi(optarg);
break;
case 'f':
fn = atoi(optarg);
break;
case 'r':
reg = atoi(optarg);
break;
case 't':
type = atoi(optarg);
break;
case 'h':
default:
usage();
break;
}
}
iopl(3);
outl(PCI_CONFIG_ADDR(bus, dev, fn, reg), 0xCF8);
switch(type) {
case 1:
val = inb(0xCFC);
break;
case 2:
val = inw(0xCFC);
break;
case 4:
val = inl(0xCFC);
break;
default:
break;
}
printf("PCI: Bus %d, DEV %d, FUNC %d, REG %d, Value is %lX\n", bus, dev, fn, reg, val);
return 0;
}
cpp_pro
2003-04-13
打赏
举报
回复
我是说编程实现
honix
2003-04-13
打赏
举报
回复
# lspci
计算机主板
pc
i插
槽
,什么是
PC
I插
槽
PC
I-E插
槽
如何辨别【详解】
主板上的扩展插
槽
曾经是多种多样的,例如曾经非常流行的组合就是
PC
I插
槽
搭配AGP插
槽
,其中AGP插
槽
主要用在显卡上,而
PC
I插
槽
的用途则更广一些,不仅有用在显卡上,还能用于扩展其它设备,如网卡、声卡、调制解调器...
PC
I-E x1/x4/x8/x16四种插
槽
区别是什么?具体有什么作用?
一、现在
PC
I-E插
槽
已经成为了主板上的主力扩展插
槽
。基本集中在
PC
I-E x1/x4/x8/x16四种上,有何作用? 具体作用是: 1、显卡会用到
PC
I-E插
槽
。
PC
I-E 3.0 x16能够满足任何高性能显卡的需求。 2、独立声卡、独立网卡...
pc
i接口
PC
I接口
PC
I是Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的...
PC
I
槽
PC
I卡
pc
i接口是什么
PC
I插
槽
pc
i接口
PC
IE插
槽
pc
i接口和
pc
ie接口
PC
IELPT接口
PC
IE接口
PC
I是由Intel公
插在计算机主板的扩展插
槽
,终于有人在计算机主板上放置了四个通用插
槽
:
PC
I...
除了用于图形卡的
PC
I-E插
槽
之外,还可以使用诸如独立声卡,独立网卡,USB 3.0 / 3.1接口扩展卡和SSD的
硬件
PC
I-E插
槽
. 因此,除非当前的主板受到主板类型或平台芯片的限制,否则制造商将为其安装足够的
PC
I-E插
槽
,以...
c语言获取
PC
I
信息
,获取
PC
I总线上任何配置头
信息
PC
I由设备存储
信息
,I/O地址空间和接下来要着重显示的配置空间。前两者可以通过配置空间的Base Address Register[]获取。(之后的博文都采用WDM分层驱动结构,如果之后学习了WDF结构,那全部改用最新的驱动结构,这样...
Linux/Unix社区
23,120
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章