网卡的中断

网卡中断主要是在接收新数据和数据发送完成时被调用,提醒网络驱动设备接收新数据和唤醒发送队列。

static irqreturn_t smsc911x_irqhandler(int irq, void *dev_id)

  1.     struct net_device *dev = dev_id;  
  2.     struct smsc911x_data *pdata = netdev_priv(dev);  
  3.     u32 intsts = smsc911x_reg_read(pdata, INT_STS);  
  4.     u32 inten = smsc911x_reg_read(pdata, INT_EN);
  5. if (unlikely(intsts & inten & INT_STS_SW_INT_)) {/*判断软中断有没有触发,如果有则关掉软中断并将其清零*/
  6. if (likely(intsts & inten & INT_STS_RSFL_)) {/*收到新的网卡数据触发中断*/ 

 

posted @ 2015-05-19 11:10  polo2013  阅读(472)  评论(0)    收藏  举报