int handle_inter_proc () { input_eth(); ipintr(); arpintr(); }
/* 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(); }
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(); }