diff options
author | jlemon <jlemon@FreeBSD.org> | 2003-03-04 23:19:55 +0000 |
---|---|---|
committer | jlemon <jlemon@FreeBSD.org> | 2003-03-04 23:19:55 +0000 |
commit | 04e28d5a816573d1300b4591306a8785d3ace29c (patch) | |
tree | f304f726e8973253d3e8a87e56119fec0276a61c /sys/netatalk/ddp_usrreq.c | |
parent | 45fcac94f475f1d18d50dde4f72eb51ee4abddcc (diff) | |
download | FreeBSD-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_usrreq.c')
-rw-r--r-- | sys/netatalk/ddp_usrreq.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/sys/netatalk/ddp_usrreq.c b/sys/netatalk/ddp_usrreq.c index fa79cec..7e8eed8 100644 --- a/sys/netatalk/ddp_usrreq.c +++ b/sys/netatalk/ddp_usrreq.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 |