| version 1.1, 1993/03/21 09:45:37 |
version 1.2, 1993/05/04 05:41:18 |
|
|
| register struct ipq *fp; |
register struct ipq *fp; |
| register struct in_ifaddr *ia; |
register struct in_ifaddr *ia; |
| int hlen, s; |
int hlen, s; |
| |
#ifdef PARANOID |
| |
static int busy = 0; |
| |
|
| |
if (busy) |
| |
panic("ipintr: called recursively\n"); |
| |
++busy; |
| |
#endif |
| next: |
next: |
| /* |
/* |
| * Get next datagram off input queue and get IP header |
* Get next datagram off input queue and get IP header |
|
|
| s = splimp(); |
s = splimp(); |
| IF_DEQUEUE(&ipintrq, m); |
IF_DEQUEUE(&ipintrq, m); |
| splx(s); |
splx(s); |
| if (m == 0) |
if (m == 0) { |
| |
#ifdef PARANOID |
| |
--busy; |
| |
#endif |
| return; |
return; |
| |
} |
| #ifdef DIAGNOSTIC |
#ifdef DIAGNOSTIC |
| if ((m->m_flags & M_PKTHDR) == 0) |
if ((m->m_flags & M_PKTHDR) == 0) |
| panic("ipintr no HDR"); |
panic("ipintr no HDR"); |