version 1.21, 2012/10/27 17:18:37 |
version 1.21.10.1, 2014/08/10 06:54:57 |
Line 56 __KERNEL_RCSID(0, "$NetBSD$"); |
|
Line 56 __KERNEL_RCSID(0, "$NetBSD$"); |
|
#include <sys/device.h> |
#include <sys/device.h> |
|
|
#include <net/if.h> |
#include <net/if.h> |
#include <net/netisr.h> |
|
|
|
#ifdef INET |
#ifdef INET |
#include <netinet/in.h> |
#include <netinet/in.h> |
Line 553 dmcxint(void *a) |
|
Line 552 dmcxint(void *a) |
|
|
|
struct ifnet *ifp; |
struct ifnet *ifp; |
struct mbuf *m; |
struct mbuf *m; |
struct ifqueue *inq; |
|
int arg, pkaddr, cmd, len, s; |
int arg, pkaddr, cmd, len, s; |
struct ifrw *ifrw; |
struct ifrw *ifrw; |
struct dmcbufs *rp; |
struct dmcbufs *rp; |
Line 624 dmcxint(void *a) |
|
Line 622 dmcxint(void *a) |
|
/* Shave off dmc_header */ |
/* Shave off dmc_header */ |
m_adj(m, sizeof(struct dmc_header)); |
m_adj(m, sizeof(struct dmc_header)); |
switch (dh->dmc_type) { |
switch (dh->dmc_type) { |
|
|
#ifdef INET |
#ifdef INET |
case DMC_IPTYPE: |
case DMC_IPTYPE: |
schednetisr(NETISR_IP); |
|
inq = &ipintrq; |
|
break; |
break; |
#endif |
#endif |
default: |
default: |
Line 637 dmcxint(void *a) |
|
Line 632 dmcxint(void *a) |
|
} |
} |
|
|
s = splnet(); |
s = splnet(); |
if (IF_QFULL(inq)) { |
if (__predict_false(!pktq_enqueue(ip_pktq, m, 0))) { |
IF_DROP(inq); |
|
m_freem(m); |
m_freem(m); |
} else |
} |
IF_ENQUEUE(inq, m); |
|
splx(s); |
splx(s); |
|
|
setup: |
setup: |