将设备中断寄存器设置为 0 不会导致任何结果

问题描述

我创建了小的 c 代码来在设备设置上禁用以太网卡设备驱动程序的轮询中断处理程序。但它不会导致我的以太网卡停止接收数据包。这是为什么? 这是代码

    #include <sys/io.h>

    #include <linux/if_ether.h>
    #include <net/ethernet.h>
    #include <stdio.h>
    #include <malloc.h>
    #include <netinet/tcp.h>
    #include <netinet/ip.h>
    #include <arpa/inet.h>
    void main(){
        unsigned long addr;
        void *data=0x00;//malloc(sizeof(struct ether_header)+sizeof(struct iphdr)+sizeof(struct tcphdr));
        addr=0x00000000fe400000+0x000C8;
        int x=iopl(3);
        outsb(addr,&data,sizeof(data));


    }

我在代码 0x00000000fe400000 中使用的基本地址 我检查偏移 0x000C00x000C8 处的清除中断 其他选项是:

  1. 0x000C0=中断原因读取寄存器
  2. 0x000C4=中断节流寄存器
  3. 0x000C8=中断原因设置寄存器
  4. 0x000D0=中断屏蔽设置/读取寄存器
  5. 0x000D8=中断屏蔽清除寄存器
  6. 0x000E0=自动中断确认

设备规格:以太网控制器:Intel Corporation 82579LM Gigabit Network Connection (刘易斯维尔)(修订版 04) 设备名称:板载局域网

lspci -vvv

以太网控制器:英特尔公司 82579LM 千兆网络连接(刘易斯维尔)(修订版 04) 设备名称:板载局域网 子系统:Hewlett-Packard Company 82579LM Gigabit Network Connection >(Lewisville) 控制:I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 步进- SERR+ FastB2B- DisINTx+ 状态:Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)