diff options
author | peter <peter@FreeBSD.org> | 2001-01-31 07:58:58 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2001-01-31 07:58:58 +0000 |
commit | 6be84866ea66a3d9041f0400dda21d05913d219d (patch) | |
tree | 126edfdf3ed82891788fa9edc2df5bada88d2592 /sys/net/if_loop.c | |
parent | 2c2377c37d343b47ad9d996ea324576e1977647d (diff) | |
download | FreeBSD-src-6be84866ea66a3d9041f0400dda21d05913d219d.zip FreeBSD-src-6be84866ea66a3d9041f0400dda21d05913d219d.tar.gz |
Exterminate the use of PSEUDO_SET() with extreme prejudice.
Diffstat (limited to 'sys/net/if_loop.c')
-rw-r--r-- | sys/net/if_loop.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c index 105b8dd..3c75a34 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -48,6 +48,7 @@ #include <sys/kernel.h> #include <sys/malloc.h> #include <sys/mbuf.h> +#include <sys/module.h> #include <sys/socket.h> #include <sys/sockio.h> #include <sys/sysctl.h> @@ -89,9 +90,6 @@ int loioctl __P((struct ifnet *, u_long, caddr_t)); static void lortrequest __P((int, struct rtentry *, struct sockaddr *)); -static void loopattach __P((void *)); -PSEUDO_SET(loopattach, if_loop); - int looutput __P((struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, struct rtentry *rt)); @@ -174,19 +172,33 @@ sysctl_net_nloop(SYSCTL_HANDLER_ARGS) SYSCTL_PROC(_net, OID_AUTO, nloop, CTLTYPE_INT | CTLFLAG_RW, 0, 0, sysctl_net_nloop, "I", ""); -/* ARGSUSED */ -static void -loopattach(dummy) - void *dummy; -{ +static int +loop_modevent(module_t mod, int type, void *data) +{ int i; - TUNABLE_INT_FETCH("net.nloop", 1, nloop); - if (nloop < 1) /* sanity check */ - nloop = 1; - for (i = 0; i < nloop; i++) - locreate(i); -} + switch (type) { + case MOD_LOAD: + TUNABLE_INT_FETCH("net.nloop", 1, nloop); + if (nloop < 1) /* sanity check */ + nloop = 1; + for (i = 0; i < nloop; i++) + locreate(i); + break; + case MOD_UNLOAD: + printf("loop module unload - not possible for this module type\n"); + return EINVAL; + } + return 0; +} + +static moduledata_t loop_mod = { + "loop", + loop_modevent, + 0 +}; + +DECLARE_MODULE(loop, loop_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); int looutput(ifp, m, dst, rt) |