PCIE读办卡信息代码
来源:互联网 发布:多益网络web前端笔试 编辑:程序博客网 时间:2024/05/21 01:51
本代码是小白写的如果各位大神有好代码 请在下方留个方式
#include <linux/module.h>
#include <linux/tty.h>
#include <linux/ioport.h>
#include <linux/init.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/pci.h>
#include <linux/sched.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/tty_flip.h>
#include <linux/serial_reg.h>
#include <linux/serial.h>
#include <linux/serial_core.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/irq.h>
#include <asm/bitops.h>
#include <asm/byteorder.h>
#include <asm/serial.h>
#include <asm/io.h>
#include <asm/uaccess.h>
static int read_pci_probe(struct pci_dev *dev, const struct pci_device_id *ent)
{
int rc;
u16 id;
unsigned char irq;
int i;
unsigned long io_base;
unsigned long io_length;
unsigned long flags;
printk("probe succeed\n");
rc = pci_enable_device(dev);
if (rc)
return rc;
rc=pci_read_config_word(dev,PCI_VENDOR_ID,&id);
if(!rc)
{
printk("PCI_VENDOR_ID = %u\n",id);
}
rc=pci_read_config_word(dev,PCI_DEVICE_ID,&id);
if(!rc)
{
printk("PCI_DEVICE_ID = %u\n",id);
}
if(pci_read_config_byte(dev,PCI_INTERRUPT_LINE,&irq));
{
irq=-1;
printk("ggggggggghhhhhhhhhhhhhhhh\n");
}
printk("pci irq=%d\n%d\n",irq,dev->irq);
for(i=0;i<=5;i++)
{
io_base = pci_resource_start(dev,i);
printk("io_base = %lu\n",io_base);
io_length= pci_resource_len(dev,i);
printk("io_length = %lu\n",io_length);
flags=pci_resource_flags(dev,i);
printk("io_flages =%lu\n",flags);
}
return 0;
}
static void read_pci_remove(struct pci_dev *dev)
{
pci_disable_device(dev);
}
//如果套用,只需要改这里
static DEFINE_PCI_DEVICE_TABLE(your_equipment_tbl) = {
{PCI_DEVICE(0x13a8, 0x358), },
{0,},
};
struct pci_driver read_pci_driver = {
.name = "read_pci_config",
.probe = read_pci_probe,
.remove = read_pci_remove,
.id_table = your_equipment_tbl,
};
static int __init readpci_init(void)
{
int ret;
ret = pci_register_driver(&read_pci_driver);
if (ret < 0)
{
printk("pci_regeister_driver error\n");
return ret;
}
return ret;
}
static void __exit readpci_exit(void)
{
pci_unregister_driver(&read_pci_driver);
}
module_init(readpci_init);
module_exit(readpci_exit);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Just read pci config");
- PCIE读办卡信息代码
- pcie
- pcie
- PCIE
- PCIE
- PCIE
- PCIE 概述
- PCIe扫盲
- PCIE路由
- PCIE link
- PCI、PCIE
- Mark PCIE
- PCIe基础知识
- 关于PCIE
- PCIe基础知识
- PCIe Summary
- PCIe扫盲
- PCIE 知识
- ASP.Net的AutoPostBack属性
- 环境变量的使用
- 杭电 OJ 1282 回文数猜想
- 设计模式之单例模式
- 记一次代码重构--状态机编程
- PCIE读办卡信息代码
- xml的解析
- 解决 BootstrapApplication 问题
- 图标库font-Awesome使用教程
- CentOS7搭建FTP服务器
- 管道的使用
- linux ftp服务
- python 报错笔记
- linkedlist模拟队列或堆