摘要: 在linux系统中,整个中断流程被分为两个部分。第一个部分是中断处理程序(上半部),内核通过对它的异步执行完成对硬件中断的即时响应。另一个部分称作下半部,下半部的任务是执行与中断处理密切相关但是中断处理程序本身不执行的工作。无线网卡的中断处理程序在无线网卡的初始化函数中得到注册。每当硬件发出中断,中断处理函数都会首先读取状态寄存器,判断导致中断产生的事件。然后根据不同的事件调用不同的函数来完成中断流程的下半部。在madwifi中采用的下半部的实现机制都是tasklet 阅读全文
posted @ 2013-08-02 15:00 laughingLau 阅读(563) 评论(0) 推荐(0) 编辑
摘要: Softnet_data的初始化:每个CPU的softnet_data是在net_dev_init中初始化的,代码如下: 1 "/net/core/dev.c" "static int __init net_dev_init(void)" 2 for_each_possible_cpu(i) { 3 struct softnet_data *queue; 5 queue = &per_cpu(softnet_data, i); 6 skb_queue_head_init(&queue->input_pkt_queue); 7 que 阅读全文
posted @ 2013-08-02 11:10 laughingLau 阅读(1051) 评论(0) 推荐(0) 编辑