-#define NPROTOSW (sizeof(protosw) / sizeof(protosw[0]))
-
-struct protosw *protoswLAST = &protosw[NPROTOSW-1];
-
-/*
- * Operations on protocol table and protocol families.
- */
-
-/*
- * Initialize all protocols.
- */
-pfinit()
-{
- register struct protosw *pr;
-
- for (pr = protoswLAST; pr >= protosw; pr--)
- if (pr->pr_init)
- (*pr->pr_init)();
- pffasttimo();
- pfslowtimo();
-}
-
-/*
- * Find a standard protocol in a protocol family
- * of a specific type.
- */
-struct protosw *
-pffindtype(family, type)
- int family, type;
-{
- register struct protosw *pr;
-
- if (family == 0)
- return (0);
- for (pr = protosw; pr <= protoswLAST; pr++)
- if (pr->pr_family == family && pr->pr_type == type)
- return (pr);
- return (0);
-}
-
-/*
- * Find a specified protocol in a specified protocol family.
- */
-struct protosw *
-pffindproto(family, protocol)
- int family, protocol;
-{
- register struct protosw *pr;
-
- if (family == 0)
- return (0);
- for (pr = protosw; pr <= protoswLAST; pr++)
- if (pr->pr_family == family && pr->pr_protocol == protocol)
- return (pr);
- return (0);
-}
-
-pfctlinput(cmd, arg)
- int cmd;
- caddr_t arg;
-{
- register struct protosw *pr;
-
- for (pr = protosw; pr <= protoswLAST; pr++)
- if (pr->pr_ctlinput)
- (*pr->pr_ctlinput)(cmd, arg);
-}
-
-/*
- * Slow timeout on all protocols.
- */
-pfslowtimo()
-{
- register struct protosw *pr;
-
- for (pr = protoswLAST; pr >= protosw; pr--)
- if (pr->pr_slowtimo)
- (*pr->pr_slowtimo)();
- timeout(pfslowtimo, 0, hz / PR_SLOWHZ);
-}
-
-pffasttimo()
-{
- register struct protosw *pr;
-
- for (pr = protoswLAST; pr >= protosw; pr--)
- if (pr->pr_fasttimo)
- (*pr->pr_fasttimo)();
- timeout(pffasttimo, 0, hz / PR_FASTHZ);
-}