示例#1
0
文件: main.c 项目: weiguojiang/code
int  handle_inter_proc ()
{
    input_eth(); 
    ipintr();    
    arpintr();
  
}
示例#2
0
文件: kspl.c 项目: antonycourtney/anp
/* do_sw_intr() -- do software interrupt processing */
void do_sw_intr(void)
{
     int n, s;

     s = splhigh();
     n = netisr;
     netisr = 0;
     splx(s);
     if (n & (1 << NETISR_ARP))
	  arpintr();
     if (n & (1 << NETISR_IP))
	  ipintr();
}
示例#3
0
void
netintr(void *unused) /* ARGSUSED */
{
	int n, t = 0;

	while ((n = netisr) != 0) {
		atomic_clearbits_int(&netisr, n);

#ifdef INET
#if NETHER > 0
		if (n & (1 << NETISR_ARP))
			arpintr();
#endif
		if (n & (1 << NETISR_IP))
			ipintr();
#endif
#ifdef INET6
		if (n & (1 << NETISR_IPV6))
			ip6intr();
#endif
#ifdef MPLS
		if (n & (1 << NETISR_MPLS))
			mplsintr();
#endif
#if NPPP > 0
		if (n & (1 << NETISR_PPP))
			pppintr();
#endif
#if NBRIDGE > 0
		if (n & (1 << NETISR_BRIDGE))
			bridgeintr();
#endif
#if NPPPOE > 0
		if (n & (1 << NETISR_PPPOE))
			pppoeintr();
#endif
#if NBLUETOOTH > 0
		if (n & (1 << NETISR_BT))
			btintr();
#endif

		t |= n;
	}

#if NPFSYNC > 0
	if (t & (1 << NETISR_PFSYNC))
		pfsyncintr();
#endif
	if (t & (1 << NETISR_TX))
		nettxintr();
}