summaryrefslogtreecommitdiffstats
path: root/sys/netatalk/ddp_pcb.c
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>2003-03-04 23:19:55 +0000
committerjlemon <jlemon@FreeBSD.org>2003-03-04 23:19:55 +0000
commit04e28d5a816573d1300b4591306a8785d3ace29c (patch)
treef304f726e8973253d3e8a87e56119fec0276a61c /sys/netatalk/ddp_pcb.c
parent45fcac94f475f1d18d50dde4f72eb51ee4abddcc (diff)
downloadFreeBSD-src-04e28d5a816573d1300b4591306a8785d3ace29c.zip
FreeBSD-src-04e28d5a816573d1300b4591306a8785d3ace29c.tar.gz
Update netisr handling; Each SWI now registers its queue, and all queue
drain routines are done by swi_net, which allows for better queue control at some future point. Packets may also be directly dispatched to a netisr instead of queued, this may be of interest at some installations, but currently defaults to off. Reviewed by: hsu, silby, jayanth, sam Sponsored by: DARPA, NAI Labs
Diffstat (limited to 'sys/netatalk/ddp_pcb.c')
-rw-r--r--sys/netatalk/ddp_pcb.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/sys/netatalk/ddp_pcb.c b/sys/netatalk/ddp_pcb.c
index fa79cec..7e8eed8 100644
--- a/sys/netatalk/ddp_pcb.c
+++ b/sys/netatalk/ddp_pcb.c
@@ -14,7 +14,7 @@
#include <sys/protosw.h>
#include <net/if.h>
#include <net/route.h>
-#include <net/intrq.h>
+#include <net/netisr.h>
#include <netatalk/at.h>
#include <netatalk/at_var.h>
@@ -35,6 +35,7 @@ struct ddpcb *ddpcb = NULL;
static u_long ddp_sendspace = DDP_MAXSZ; /* Max ddp size + 1 (ddp_type) */
static u_long ddp_recvspace = 10 * ( 587 + sizeof( struct sockaddr_at ));
+static struct ifqueue atintrq1, atintrq2, aarpintrq;
static int
ddp_attach(struct socket *so, int proto, struct thread *td)
@@ -542,16 +543,19 @@ at_setsockaddr(struct socket *so, struct sockaddr **nam)
return(0);
}
-
void
-ddp_init(void )
+ddp_init(void)
{
- atintrq1.ifq_maxlen = IFQ_MAXLEN;
- atintrq2.ifq_maxlen = IFQ_MAXLEN;
- atintrq1_present = 1;
- atintrq2_present = 1;
- mtx_init(&atintrq1.ifq_mtx, "at1_inq", NULL, MTX_DEF);
- mtx_init(&atintrq2.ifq_mtx, "at2_inq", NULL, MTX_DEF);
+
+ atintrq1.ifq_maxlen = IFQ_MAXLEN;
+ atintrq2.ifq_maxlen = IFQ_MAXLEN;
+ aarpintrq.ifq_maxlen = IFQ_MAXLEN;
+ mtx_init(&atintrq1.ifq_mtx, "at1_inq", NULL, MTX_DEF);
+ mtx_init(&atintrq2.ifq_mtx, "at2_inq", NULL, MTX_DEF);
+ mtx_init(&aarpintrq.ifq_mtx, "aarp_inq", NULL, MTX_DEF);
+ netisr_register(NETISR_ATALK1, at1intr, &atintrq1);
+ netisr_register(NETISR_ATALK2, at2intr, &atintrq2);
+ netisr_register(NETISR_AARP, aarpintr, &aarpintrq);
}
#if 0
OpenPOWER on IntegriCloud