aboutsummaryrefslogtreecommitdiff
path: root/sys/netatalk/ddp_pcb.c
diff options
context:
space:
mode:
authorJonathan Lemon <jlemon@FreeBSD.org>2003-03-04 23:19:55 +0000
committerJonathan Lemon <jlemon@FreeBSD.org>2003-03-04 23:19:55 +0000
commit1cafed3941f1a4e9d2beb4fb126e91018505dfd4 (patch)
treef304f726e8973253d3e8a87e56119fec0276a61c /sys/netatalk/ddp_pcb.c
parentc141c242ac0a55a34b58cf2b06d13964d00507a4 (diff)
downloadsrc-1cafed3941f1a4e9d2beb4fb126e91018505dfd4.tar.gz
src-1cafed3941f1a4e9d2beb4fb126e91018505dfd4.zip
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
Notes
Notes: svn path=/head/; revision=111888
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 fa79cec9de4a..7e8eed80101f 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