summaryrefslogtreecommitdiffstats
path: root/sys/netipx
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netipx')
-rw-r--r--sys/netipx/ipx_input.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/sys/netipx/ipx_input.c b/sys/netipx/ipx_input.c
index 9f9b8d4..2a0980a 100644
--- a/sys/netipx/ipx_input.c
+++ b/sys/netipx/ipx_input.c
@@ -100,6 +100,11 @@ static int ipxnetbios = 0;
SYSCTL_INT(_net_ipx, OID_AUTO, ipxnetbios, CTLFLAG_RW,
&ipxnetbios, 0, "Propagate netbios over ipx");
+static int ipx_do_route(struct ipx_addr *src, struct route *ro);
+static void ipx_undo_route(struct route *ro);
+static void ipx_forward(struct mbuf *m);
+static void ipxintr(struct mbuf *m);
+
const union ipx_net ipx_zeronet;
const union ipx_host ipx_zerohost;
@@ -119,16 +124,15 @@ struct mtx ipxpcb_list_mtx;
struct ipxpcbhead ipxpcb_list;
struct ipxpcbhead ipxrawpcb_list;
-static int ipxqmaxlen = IFQ_MAXLEN;
-static struct ifqueue ipxintrq;
+static struct netisr_handler ipx_nh = {
+ .nh_name = "ipx",
+ .nh_handler = ipxintr,
+ .nh_proto = NETISR_IPX,
+ .nh_policy = NETISR_POLICY_SOURCE,
+};
long ipx_pexseq; /* Locked with ipxpcb_list_mtx. */
-static int ipx_do_route(struct ipx_addr *src, struct route *ro);
-static void ipx_undo_route(struct route *ro);
-static void ipx_forward(struct mbuf *m);
-static void ipxintr(struct mbuf *m);
-
/*
* IPX initialization.
*/
@@ -151,9 +155,7 @@ ipx_init(void)
ipx_hostmask.sipx_addr.x_net = ipx_broadnet;
ipx_hostmask.sipx_addr.x_host = ipx_broadhost;
- ipxintrq.ifq_maxlen = ipxqmaxlen;
- mtx_init(&ipxintrq.ifq_mtx, "ipx_inq", NULL, MTX_DEF);
- netisr_register(NETISR_IPX, ipxintr, &ipxintrq, 0);
+ netisr_register(&ipx_nh);
}
/*
OpenPOWER on IntegriCloud