欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

对linux停pci驱动的困惑。求解。

更新时间: 2014-01-05 03:19:26 责任编辑: Author_N1

 

对Linux下PCI驱动的困惑。。求解。。
各位好:
    我目前正在学习linux的PCI驱动开发,有些疑惑希望各位高手赐教。
    目前我想在用户态下访问某一个PCI设备,按照LDD书上所说,是否可以使用pci_get_device来获取一个设备?还是这个设备只能用于内核态?如果只能用于内核态,我想在用户态下直接访问pci设备进行IO操作应该怎么做呢?
    而且,在编译的时候为啥提示我undefined reference to 'pci_get_device'呢??

#include <linux/pci.h>
#include <linux/pci_regs.h>
#include <linux/stddef.h>
#include <sys/io.h>
#include <stdio.h>

struct pci_dev *gpio_dev = NULL;

void main()
{
    int bus = 0;
    int dev = 0;
    int func = 0;
    unsigned long addr = 0, data = 0;
    
    if(iopl(3) < 0)
    {
        printf("iopl error\n");
        
        return;
    }
    
    for(bus = 0; bus < 256; bus++)
    {
        for(dev = 0; dev < 32; dev++)
        {            
            for(func = 0; func < 8; func++)
            {
                addr = 0x80000000 |  bus << 16 | dev << 11 | func << 8;
                outl(addr, 0xcf8);
                data = inl(0xcfc);
                if((data != 0xffffffff) && (data != 0))
                    printf("ven:dev %04x:%04x\n", data & 0xffff, (data >> 16) & 0xffff);
            
                gpio_dev = pci_get_device(data & 0xffff, (data >> 16) & 0xffff, gpio_dev);
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:19:26
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20774/
本文WWW.DOC100.NET DOC100.NET版权所有。