summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/net/if_atm.h6
-rw-r--r--sys/net/if_atmsubr.c14
-rw-r--r--sys/netinet/if_atm.c6
3 files changed, 15 insertions, 11 deletions
diff --git a/sys/net/if_atm.h b/sys/net/if_atm.h
index d1d60f2a3fd..5620bc89b3e 100644
--- a/sys/net/if_atm.h
+++ b/sys/net/if_atm.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_atm.h,v 1.5 1996/06/28 02:33:41 chuck Exp $ */
+/* $OpenBSD: if_atm.h,v 1.6 1996/06/29 20:05:41 chuck Exp $ */
/*
*
@@ -68,7 +68,7 @@ struct atm_pseudohdr {
/* atm_pseudoioctl: turns on and off RX VCIs [for internal use only!] */
struct atm_pseudoioctl {
struct atm_pseudohdr aph;
- struct socket *asock;
+ void *rxhand;
};
#define SIOCATMENA _IOWR('a', 123, struct atm_pseudoioctl) /* enable */
#define SIOCATMDIS _IOWR('a', 124, struct atm_pseudoioctl) /* disable */
@@ -92,7 +92,7 @@ struct atmllc {
#ifdef _KERNEL
void atm_ifattach __P((struct ifnet *));
void atm_input __P((struct ifnet *, struct atm_pseudohdr *,
- struct mbuf *, struct socket *));
+ struct mbuf *, void *));
int atm_output __P((struct ifnet *, struct mbuf *, struct sockaddr *,
struct rtentry *));
#endif
diff --git a/sys/net/if_atmsubr.c b/sys/net/if_atmsubr.c
index d8e95763558..e45189c2b0f 100644
--- a/sys/net/if_atmsubr.c
+++ b/sys/net/if_atmsubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_atmsubr.c,v 1.4 1996/06/27 04:33:10 chuck Exp $ */
+/* $OpenBSD: if_atmsubr.c,v 1.5 1996/06/29 20:05:41 chuck Exp $ */
/*
*
@@ -201,11 +201,11 @@ bad:
* the packet is in the mbuf chain m.
*/
void
-atm_input(ifp, ah, m, so)
+atm_input(ifp, ah, m, rxhand)
struct ifnet *ifp;
register struct atm_pseudohdr *ah;
struct mbuf *m;
- struct socket *so;
+ void *rxhand;
{
register struct ifqueue *inq;
u_int16_t etype = ETHERTYPE_IP; /* default */
@@ -218,11 +218,15 @@ atm_input(ifp, ah, m, so)
ifp->if_lastchange = time;
ifp->if_ibytes += m->m_pkthdr.len;
- if (so) {
+ if (rxhand) {
#ifdef NATM
+ struct natmpcb *npcb = rxhand;
+ s = splimp(); /* in case 2 atm cards @ diff lvls */
+ npcb->npcb_inq++; /* count # in queue */
+ splx(s);
schednetisr(NETISR_NATM);
inq = &natmintrq;
- m->m_pkthdr.rcvif = (struct ifnet *) so; /* XXX: overload */
+ m->m_pkthdr.rcvif = rxhand; /* XXX: overload */
#else
printf("atm_input: NATM detected but not configured in kernel\n");
m_freem(m);
diff --git a/sys/netinet/if_atm.c b/sys/netinet/if_atm.c
index d2d1ba922d5..6d4b3799e14 100644
--- a/sys/netinet/if_atm.c
+++ b/sys/netinet/if_atm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_atm.c,v 1.3 1996/06/26 04:17:08 chuck Exp $ */
+/* $OpenBSD: if_atm.c,v 1.4 1996/06/29 20:05:42 chuck Exp $ */
/*
*
@@ -153,7 +153,7 @@ atm_rtrequest(req, rt, sa)
* let the lower level know this circuit is active
*/
bcopy(LLADDR(SDL(gate)), &api.aph, sizeof(api.aph));
- api.asock = NULL;
+ api.rxhand = NULL;
if (rt->rt_ifp->if_ioctl(rt->rt_ifp, SIOCATMENA,
(caddr_t)&api) != 0) {
printf("atm: couldn't add VC\n");
@@ -196,7 +196,7 @@ failed:
*/
bcopy(LLADDR(SDL(gate)), &api.aph, sizeof(api.aph));
- api.asock = NULL;
+ api.rxhand = NULL;
(void)rt->rt_ifp->if_ioctl(rt->rt_ifp, SIOCATMDIS,
(caddr_t)&api);