如何解决将设备中断寄存器设置为 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
中使用的基本地址
我检查偏移 0x000C0
和 0x000C8
处的清除中断
其他选项是:
- 0x000C0=中断原因读取寄存器
- 0x000C4=中断节流寄存器
- 0x000C8=中断原因设置寄存器
- 0x000D0=中断屏蔽设置/读取寄存器
- 0x000D8=中断屏蔽清除寄存器
- 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 举报,一经查实,本站将立刻删除。