Module Name: src Committed By: pooka Date: Wed Sep 16 15:23:05 UTC 2009
Modified Files: src/sys/kern: init_main.c kern_sysctl.c subr_autoconf.c subr_bufq.c subr_iostat.c uipc_accf.c src/sys/miscfs/syncfs: sync_subr.c src/sys/net: if.c route.c rtsock.c src/sys/netinet: if_arp.c igmp.c in_proto.c ip_carp.c ip_carp.h ip_icmp.c ip_input.c raw_ip.c tcp_subr.c tcp_usrreq.c tcp_var.h udp_usrreq.c src/sys/netinet6: icmp6.c ip6_input.c ip6_mroute.c raw_ip6.c udp6_usrreq.c src/sys/rump/librump/rumpkern: rump.c src/sys/sys: sysctl.h Log Message: Replace a large number of link set based sysctl node creations with calls from subsystem constructors. Benefits both future kernel modules and rump. no change to sysctl nodes on i386/MONOLITHIC & build tested i386/ALL To generate a diff of this commit: cvs rdiff -u -r1.399 -r1.400 src/sys/kern/init_main.c cvs rdiff -u -r1.225 -r1.226 src/sys/kern/kern_sysctl.c cvs rdiff -u -r1.181 -r1.182 src/sys/kern/subr_autoconf.c cvs rdiff -u -r1.18 -r1.19 src/sys/kern/subr_bufq.c cvs rdiff -u -r1.17 -r1.18 src/sys/kern/subr_iostat.c cvs rdiff -u -r1.8 -r1.9 src/sys/kern/uipc_accf.c cvs rdiff -u -r1.40 -r1.41 src/sys/miscfs/syncfs/sync_subr.c cvs rdiff -u -r1.236 -r1.237 src/sys/net/if.c cvs rdiff -u -r1.117 -r1.118 src/sys/net/route.c cvs rdiff -u -r1.126 -r1.127 src/sys/net/rtsock.c cvs rdiff -u -r1.146 -r1.147 src/sys/netinet/if_arp.c cvs rdiff -u -r1.50 -r1.51 src/sys/netinet/igmp.c cvs rdiff -u -r1.98 -r1.99 src/sys/netinet/in_proto.c cvs rdiff -u -r1.38 -r1.39 src/sys/netinet/ip_carp.c cvs rdiff -u -r1.5 -r1.6 src/sys/netinet/ip_carp.h cvs rdiff -u -r1.120 -r1.121 src/sys/netinet/ip_icmp.c cvs rdiff -u -r1.283 -r1.284 src/sys/netinet/ip_input.c cvs rdiff -u -r1.109 -r1.110 src/sys/netinet/raw_ip.c cvs rdiff -u -r1.237 -r1.238 src/sys/netinet/tcp_subr.c cvs rdiff -u -r1.156 -r1.157 src/sys/netinet/tcp_usrreq.c cvs rdiff -u -r1.161 -r1.162 src/sys/netinet/tcp_var.h cvs rdiff -u -r1.178 -r1.179 src/sys/netinet/udp_usrreq.c cvs rdiff -u -r1.152 -r1.153 src/sys/netinet6/icmp6.c cvs rdiff -u -r1.127 -r1.128 src/sys/netinet6/ip6_input.c cvs rdiff -u -r1.97 -r1.98 src/sys/netinet6/ip6_mroute.c cvs rdiff -u -r1.104 -r1.105 src/sys/netinet6/raw_ip6.c cvs rdiff -u -r1.87 -r1.88 src/sys/netinet6/udp6_usrreq.c cvs rdiff -u -r1.114 -r1.115 src/sys/rump/librump/rumpkern/rump.c cvs rdiff -u -r1.186 -r1.187 src/sys/sys/sysctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/init_main.c diff -u src/sys/kern/init_main.c:1.399 src/sys/kern/init_main.c:1.400 --- src/sys/kern/init_main.c:1.399 Sun Sep 13 18:45:10 2009 +++ src/sys/kern/init_main.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: init_main.c,v 1.399 2009/09/13 18:45:10 pooka Exp $ */ +/* $NetBSD: init_main.c,v 1.400 2009/09/16 15:23:04 pooka Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -97,7 +97,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.399 2009/09/13 18:45:10 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.400 2009/09/16 15:23:04 pooka Exp $"); #include "opt_ddb.h" #include "opt_ipsec.h" @@ -589,6 +589,8 @@ */ config_finalize(); + sysctl_finalize(); + /* * Now that autoconfiguration has completed, we can determine * the root and dump devices. Index: src/sys/kern/kern_sysctl.c diff -u src/sys/kern/kern_sysctl.c:1.225 src/sys/kern/kern_sysctl.c:1.226 --- src/sys/kern/kern_sysctl.c:1.225 Mon Aug 24 20:53:00 2009 +++ src/sys/kern/kern_sysctl.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_sysctl.c,v 1.225 2009/08/24 20:53:00 dyoung Exp $ */ +/* $NetBSD: kern_sysctl.c,v 1.226 2009/09/16 15:23:04 pooka Exp $ */ /*- * Copyright (c) 2003, 2007, 2008 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_sysctl.c,v 1.225 2009/08/24 20:53:00 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_sysctl.c,v 1.226 2009/09/16 15:23:04 pooka Exp $"); #include "opt_defcorename.h" #include "ksyms.h" @@ -235,14 +235,20 @@ f = (void*)*sysctl_setup; (*f)(NULL); } +} - /* - * setting this means no more permanent nodes can be added, - * trees that claim to be readonly at the root now are, and if - * the main tree is readonly, *everything* is. - */ - sysctl_root.sysctl_flags |= CTLFLAG_PERMANENT; +/* + * Setting this means no more permanent nodes can be added, + * trees that claim to be readonly at the root now are, and if + * the main tree is readonly, *everything* is. + * + * Call this at the end of kernel init. + */ +void +sysctl_finalize(void) +{ + sysctl_root.sysctl_flags |= CTLFLAG_PERMANENT; } /* Index: src/sys/kern/subr_autoconf.c diff -u src/sys/kern/subr_autoconf.c:1.181 src/sys/kern/subr_autoconf.c:1.182 --- src/sys/kern/subr_autoconf.c:1.181 Sun Sep 6 16:18:56 2009 +++ src/sys/kern/subr_autoconf.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_autoconf.c,v 1.181 2009/09/06 16:18:56 pooka Exp $ */ +/* $NetBSD: subr_autoconf.c,v 1.182 2009/09/16 15:23:04 pooka Exp $ */ /* * Copyright (c) 1996, 2000 Christopher G. Demetriou @@ -77,7 +77,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.181 2009/09/06 16:18:56 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.182 2009/09/16 15:23:04 pooka Exp $"); #ifdef _KERNEL_OPT #include "opt_ddb.h" @@ -225,6 +225,8 @@ static int config_do_twiddle; static callout_t config_twiddle_ch; +static void sysctl_detach_setup(struct sysctllog **); + /* * Initialize the autoconfiguration data structures. Normally this * is done by configure(), but some platforms need to do this very @@ -267,6 +269,7 @@ initcftable.ct_cfdata = cfdata; TAILQ_INSERT_TAIL(&allcftables, &initcftable, ct_list); + sysctl_detach_setup(NULL); config_initialized = 1; } @@ -2578,7 +2581,8 @@ mutex_exit(&alldevs_mtx); } -SYSCTL_SETUP(sysctl_detach_setup, "sysctl detach setup") +static void +sysctl_detach_setup(struct sysctllog **clog) { const struct sysctlnode *node = NULL; Index: src/sys/kern/subr_bufq.c diff -u src/sys/kern/subr_bufq.c:1.18 src/sys/kern/subr_bufq.c:1.19 --- src/sys/kern/subr_bufq.c:1.18 Mon Jan 19 14:54:28 2009 +++ src/sys/kern/subr_bufq.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_bufq.c,v 1.18 2009/01/19 14:54:28 yamt Exp $ */ +/* $NetBSD: subr_bufq.c,v 1.19 2009/09/16 15:23:04 pooka Exp $ */ /* NetBSD: subr_disk.c,v 1.70 2005/08/20 12:00:01 yamt Exp $ */ /*- @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_bufq.c,v 1.18 2009/01/19 14:54:28 yamt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_bufq.c,v 1.19 2009/09/16 15:23:04 pooka Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -76,12 +76,24 @@ #include <sys/bufq.h> #include <sys/bufq_impl.h> #include <sys/kmem.h> +#include <sys/once.h> #include <sys/sysctl.h> BUFQ_DEFINE(dummy, 0, NULL); /* so that bufq_strats won't be empty */ #define STRAT_MATCH(id, bs) (strcmp((id), (bs)->bs_name) == 0) +static int bufq_init(void); +static void sysctl_kern_bufq_strategies_setup(struct sysctllog **); + +static int +bufq_init(void) +{ + + sysctl_kern_bufq_strategies_setup(NULL); + return 0; +} + /* * Create a device buffer queue. */ @@ -92,8 +104,11 @@ const struct bufq_strat *bsp; const struct bufq_strat * const *it; struct bufq_state *bufq; + static ONCE_DECL(bufq_init_ctrl); int error = 0; + RUN_ONCE(&bufq_init_ctrl, bufq_init); + KASSERT((flags & BUFQ_EXACT) == 0 || strategy != BUFQ_STRAT_ANY); switch (flags & BUFQ_SORT_MASK) { @@ -309,7 +324,8 @@ return error; } -SYSCTL_SETUP(sysctl_kern_bufq_strategies_setup, "sysctl kern.bufq tree setup") +static void +sysctl_kern_bufq_strategies_setup(struct sysctllog **clog) { const struct sysctlnode *node; Index: src/sys/kern/subr_iostat.c diff -u src/sys/kern/subr_iostat.c:1.17 src/sys/kern/subr_iostat.c:1.18 --- src/sys/kern/subr_iostat.c:1.17 Sat Apr 4 07:30:10 2009 +++ src/sys/kern/subr_iostat.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_iostat.c,v 1.17 2009/04/04 07:30:10 ad Exp $ */ +/* $NetBSD: subr_iostat.c,v 1.18 2009/09/16 15:23:04 pooka Exp $ */ /* NetBSD: subr_disk.c,v 1.69 2005/05/29 22:24:15 christos Exp */ /*- @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_iostat.c,v 1.17 2009/04/04 07:30:10 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_iostat.c,v 1.18 2009/09/16 15:23:04 pooka Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -96,6 +96,8 @@ int iostat_count; /* number of drives in global drivelist */ krwlock_t iostatlist_lock; +static void sysctl_io_stats_setup(struct sysctllog **); + /* * Initialise the iostat subsystem. */ @@ -104,6 +106,7 @@ { rw_init(&iostatlist_lock); + sysctl_io_stats_setup(NULL); } /* @@ -376,7 +379,8 @@ return (error); } -SYSCTL_SETUP(sysctl_io_stats_setup, "sysctl i/o stats setup") +static void +sysctl_io_stats_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, Index: src/sys/kern/uipc_accf.c diff -u src/sys/kern/uipc_accf.c:1.8 src/sys/kern/uipc_accf.c:1.9 --- src/sys/kern/uipc_accf.c:1.8 Thu Nov 20 10:00:54 2008 +++ src/sys/kern/uipc_accf.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_accf.c,v 1.8 2008/11/20 10:00:54 ad Exp $ */ +/* $NetBSD: uipc_accf.c,v 1.9 2009/09/16 15:23:04 pooka Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uipc_accf.c,v 1.8 2008/11/20 10:00:54 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_accf.c,v 1.9 2009/09/16 15:23:04 pooka Exp $"); #define ACCEPT_FILTER_MOD @@ -87,7 +87,8 @@ /* * Names of Accept filter sysctl objects */ -SYSCTL_SETUP(sysctl_net_inet_accf_setup, "sysctl net.inet.accf subtree setup") +static void +sysctl_net_inet_accf_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, @@ -184,6 +185,7 @@ { rw_init(&accept_filter_lock); + sysctl_net_inet_accf_setup(NULL); return 0; } Index: src/sys/miscfs/syncfs/sync_subr.c diff -u src/sys/miscfs/syncfs/sync_subr.c:1.40 src/sys/miscfs/syncfs/sync_subr.c:1.41 --- src/sys/miscfs/syncfs/sync_subr.c:1.40 Sun Mar 15 17:22:38 2009 +++ src/sys/miscfs/syncfs/sync_subr.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sync_subr.c,v 1.40 2009/03/15 17:22:38 cegger Exp $ */ +/* $NetBSD: sync_subr.c,v 1.41 2009/09/16 15:23:04 pooka Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sync_subr.c,v 1.40 2009/03/15 17:22:38 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sync_subr.c,v 1.41 2009/09/16 15:23:04 pooka Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -102,6 +102,8 @@ static struct synclist *syncer_workitem_pending; struct lwp *updateproc = NULL; +static void sysctl_vfs_syncfs_setup(struct sysctllog **); + void vn_initialize_syncerd(void) { @@ -109,6 +111,8 @@ syncer_last = SYNCER_MAXDELAY + 2; + sysctl_vfs_syncfs_setup(NULL); + syncer_workitem_pending = kmem_alloc(syncer_last * sizeof (struct synclist), KM_SLEEP); @@ -344,7 +348,8 @@ return (1); } -SYSCTL_SETUP(sysctl_vfs_syncfs_setup, "sysctl vfs.sync subtree setup") +static void +sysctl_vfs_syncfs_setup(struct sysctllog **clog) { const struct sysctlnode *rnode, *cnode; Index: src/sys/net/if.c diff -u src/sys/net/if.c:1.236 src/sys/net/if.c:1.237 --- src/sys/net/if.c:1.236 Tue Sep 15 23:24:34 2009 +++ src/sys/net/if.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: if.c,v 1.236 2009/09/15 23:24:34 jakllsch Exp $ */ +/* $NetBSD: if.c,v 1.237 2009/09/16 15:23:04 pooka Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc. @@ -90,7 +90,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.236 2009/09/15 23:24:34 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.237 2009/09/16 15:23:04 pooka Exp $"); #include "opt_inet.h" @@ -170,6 +170,9 @@ static void sysctl_sndq_setup(struct sysctllog **, const char *, struct ifaltq *); +static void sysctl_net_ifq_setup(struct sysctllog **, int, const char *, + int, const char *, int, struct ifqueue *); + /* * Network interface utility routines. * @@ -179,6 +182,16 @@ void ifinit(void) { +#ifdef INET + {extern struct ifqueue ipintrq; + sysctl_net_ifq_setup(NULL, PF_INET, "inet", IPPROTO_IP, "ip", + IPCTL_IFQ, &ipintrq);} +#endif /* INET */ +#ifdef INET6 + {extern struct ifqueue ip6intrq; + sysctl_net_ifq_setup(NULL, PF_INET6, "inet6", IPPROTO_IPV6, "ip6", + IPV6CTL_IFQ, &ip6intrq);} +#endif /* INET6 */ mutex_init(&index_gen_mtx, MUTEX_DEFAULT, IPL_NONE); callout_init(&if_slowtimo_ch, 0); @@ -2076,26 +2089,4 @@ NULL, 0, &ifq->ifq_drops, 0, CTL_NET, pf, ipn, qid, IFQCTL_DROPS, CTL_EOL); } - -#ifdef INET -SYSCTL_SETUP(sysctl_net_inet_ip_ifq_setup, - "sysctl net.inet.ip.ifq subtree setup") -{ - extern struct ifqueue ipintrq; - - sysctl_net_ifq_setup(clog, PF_INET, "inet", IPPROTO_IP, "ip", - IPCTL_IFQ, &ipintrq); -} -#endif /* INET */ - -#ifdef INET6 -SYSCTL_SETUP(sysctl_net_inet6_ip6_ifq_setup, - "sysctl net.inet6.ip6.ifq subtree setup") -{ - extern struct ifqueue ip6intrq; - - sysctl_net_ifq_setup(clog, PF_INET6, "inet6", IPPROTO_IPV6, "ip6", - IPV6CTL_IFQ, &ip6intrq); -} -#endif /* INET6 */ #endif /* INET || INET6 */ Index: src/sys/net/route.c diff -u src/sys/net/route.c:1.117 src/sys/net/route.c:1.118 --- src/sys/net/route.c:1.117 Thu Apr 2 21:02:06 2009 +++ src/sys/net/route.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: route.c,v 1.117 2009/04/02 21:02:06 christos Exp $ */ +/* $NetBSD: route.c,v 1.118 2009/09/16 15:23:04 pooka Exp $ */ /*- * Copyright (c) 1998, 2008 The NetBSD Foundation, Inc. @@ -93,7 +93,7 @@ #include "opt_route.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: route.c,v 1.117 2009/04/02 21:02:06 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: route.c,v 1.118 2009/09/16 15:23:04 pooka Exp $"); #include <sys/param.h> #include <sys/sysctl.h> @@ -143,7 +143,9 @@ static void rtflushclone(sa_family_t family, struct rtentry *); #ifdef RTFLUSH_DEBUG -SYSCTL_SETUP(sysctl_net_rtcache_setup, "sysctl net.rtcache.debug setup") +static void sysctl_net_rtcache_setup(struct sysctllog **); +static void +sysctl_net_rtcache_setup(struct sysctllog **clog) { const struct sysctlnode *rnode; @@ -262,6 +264,10 @@ route_init(void) { +#ifdef RTFLUSH_DEBUG + sysctl_net_rtcache_setup(NULL); +#endif + pool_init(&rtentry_pool, sizeof(struct rtentry), 0, 0, 0, "rtentpl", NULL, IPL_SOFTNET); pool_init(&rttimer_pool, sizeof(struct rttimer), 0, 0, 0, "rttmrpl", Index: src/sys/net/rtsock.c diff -u src/sys/net/rtsock.c:1.126 src/sys/net/rtsock.c:1.127 --- src/sys/net/rtsock.c:1.126 Sat Sep 12 18:09:25 2009 +++ src/sys/net/rtsock.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rtsock.c,v 1.126 2009/09/12 18:09:25 tsutsui Exp $ */ +/* $NetBSD: rtsock.c,v 1.127 2009/09/16 15:23:04 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.126 2009/09/12 18:09:25 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.127 2009/09/16 15:23:04 pooka Exp $"); #include "opt_inet.h" #ifdef _KERNEL_OPT @@ -106,6 +106,7 @@ static int rt_xaddrs(u_char, const char *, const char *, struct rt_addrinfo *); static struct mbuf *rt_makeifannouncemsg(struct ifnet *, int, int, struct rt_addrinfo *); +static void sysctl_net_route_setup(struct sysctllog **); static int sysctl_dumpentry(struct rtentry *, void *); static int sysctl_iflist(int, struct rt_walkarg *, int); static int sysctl_rtable(SYSCTLFN_PROTO); @@ -1218,6 +1219,7 @@ rt_init(void) { + sysctl_net_route_setup(NULL); route_intrq.ifq_maxlen = route_maxqlen; route_sih = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE, route_intr, NULL); @@ -1250,7 +1252,8 @@ .dom_protoswNPROTOSW = &routesw[__arraycount(routesw)], }; -SYSCTL_SETUP(sysctl_net_route_setup, "sysctl net.route subtree setup") +static void +sysctl_net_route_setup(struct sysctllog **clog) { const struct sysctlnode *rnode = NULL; Index: src/sys/netinet/if_arp.c diff -u src/sys/netinet/if_arp.c:1.146 src/sys/netinet/if_arp.c:1.147 --- src/sys/netinet/if_arp.c:1.146 Wed Aug 12 22:16:15 2009 +++ src/sys/netinet/if_arp.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: if_arp.c,v 1.146 2009/08/12 22:16:15 dyoung Exp $ */ +/* $NetBSD: if_arp.c,v 1.147 2009/09/16 15:23:04 pooka Exp $ */ /*- * Copyright (c) 1998, 2000, 2008 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.146 2009/08/12 22:16:15 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.147 2009/09/16 15:23:04 pooka Exp $"); #include "opt_ddb.h" #include "opt_inet.h" @@ -318,10 +318,13 @@ #define ARP_UNLOCK() arp_unlock() +static void sysctl_net_inet_arp_setup(struct sysctllog **); + void arp_init(void) { + sysctl_net_inet_arp_setup(NULL); arpstat_percpu = percpu_alloc(sizeof(uint64_t) * ARP_NSTATS); } @@ -1594,7 +1597,8 @@ return NETSTAT_SYSCTL(arpstat_percpu, ARP_NSTATS); } -SYSCTL_SETUP(sysctl_net_inet_arp_setup, "sysctl net.inet.arp subtree setup") +static void +sysctl_net_inet_arp_setup(struct sysctllog **clog) { const struct sysctlnode *node; Index: src/sys/netinet/igmp.c diff -u src/sys/netinet/igmp.c:1.50 src/sys/netinet/igmp.c:1.51 --- src/sys/netinet/igmp.c:1.50 Sun Sep 13 18:45:11 2009 +++ src/sys/netinet/igmp.c Wed Sep 16 15:23:04 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: igmp.c,v 1.50 2009/09/13 18:45:11 pooka Exp $ */ +/* $NetBSD: igmp.c,v 1.51 2009/09/16 15:23:04 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.50 2009/09/13 18:45:11 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.51 2009/09/16 15:23:04 pooka Exp $"); #include "opt_mrouting.h" @@ -82,6 +82,8 @@ static struct router_info *rti_find(struct ifnet *); static void rti_delete(struct ifnet *); +static void sysctl_net_inet_igmp_setup(struct sysctllog **); + static int rti_fill(struct in_multi *inm) { @@ -149,6 +151,7 @@ igmp_init(void) { + sysctl_net_inet_igmp_setup(NULL); pool_init(&igmp_rti_pool, sizeof(struct router_info), 0, 0, 0, "igmppl", NULL, IPL_SOFTNET); igmpstat_percpu = percpu_alloc(sizeof(uint64_t) * IGMP_NSTATS); @@ -608,7 +611,8 @@ return (NETSTAT_SYSCTL(igmpstat_percpu, IGMP_NSTATS)); } -SYSCTL_SETUP(sysctl_net_inet_igmp_setup, "sysctl net.inet.igmp subtree setup") +static void +sysctl_net_inet_igmp_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, Index: src/sys/netinet/in_proto.c diff -u src/sys/netinet/in_proto.c:1.98 src/sys/netinet/in_proto.c:1.99 --- src/sys/netinet/in_proto.c:1.98 Mon Sep 14 10:36:50 2009 +++ src/sys/netinet/in_proto.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: in_proto.c,v 1.98 2009/09/14 10:36:50 degroote Exp $ */ +/* $NetBSD: in_proto.c,v 1.99 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: in_proto.c,v 1.98 2009/09/14 10:36:50 degroote Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in_proto.c,v 1.99 2009/09/16 15:23:05 pooka Exp $"); #include "opt_mrouting.h" #include "opt_eon.h" /* ISO CLNL over IP */ @@ -362,6 +362,7 @@ .pr_output = rip_output, .pr_ctloutput = rip_ctloutput, .pr_usrreq = rip_usrreq, + .pr_init = carp_init, }, #endif /* NCARP > 0 */ #if NPFSYNC > 0 Index: src/sys/netinet/ip_carp.c diff -u src/sys/netinet/ip_carp.c:1.38 src/sys/netinet/ip_carp.c:1.39 --- src/sys/netinet/ip_carp.c:1.38 Sun Jun 7 06:11:18 2009 +++ src/sys/netinet/ip_carp.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_carp.c,v 1.38 2009/06/07 06:11:18 taca Exp $ */ +/* $NetBSD: ip_carp.c,v 1.39 2009/09/16 15:23:05 pooka Exp $ */ /* $OpenBSD: ip_carp.c,v 1.113 2005/11/04 08:11:54 mcbride Exp $ */ /* @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip_carp.c,v 1.38 2009/06/07 06:11:18 taca Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip_carp.c,v 1.39 2009/09/16 15:23:05 pooka Exp $"); /* * TODO: @@ -219,6 +219,8 @@ int carp_ether_delmulti(struct carp_softc *, struct ifreq *); void carp_ether_purgemulti(struct carp_softc *); +static void sysctl_net_inet_carp_setup(struct sysctllog **); + struct if_clone carp_cloner = IF_CLONE_INITIALIZER("carp", carp_clone_create, carp_clone_destroy); @@ -2252,7 +2254,15 @@ return (NETSTAT_SYSCTL(carpstat_percpu, CARP_NSTATS)); } -SYSCTL_SETUP(sysctl_net_inet_carp_setup, "sysctl net.inet.carp subtree setup") +void +carp_init(void) +{ + + sysctl_net_inet_carp_setup(NULL); +} + +static void +sysctl_net_inet_carp_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, Index: src/sys/netinet/ip_carp.h diff -u src/sys/netinet/ip_carp.h:1.5 src/sys/netinet/ip_carp.h:1.6 --- src/sys/netinet/ip_carp.h:1.5 Wed Apr 16 20:58:35 2008 +++ src/sys/netinet/ip_carp.h Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_carp.h,v 1.5 2008/04/16 20:58:35 dyoung Exp $ */ +/* $NetBSD: ip_carp.h,v 1.6 2009/09/16 15:23:05 pooka Exp $ */ /* $OpenBSD: ip_carp.h,v 1.18 2005/04/20 23:00:41 mpf Exp $ */ /* @@ -152,6 +152,7 @@ } #ifdef _KERNEL +void carp_init(void); void carp_ifdetach (struct ifnet *); void carp_proto_input (struct mbuf *, ...); void carp_carpdev_state(void *); Index: src/sys/netinet/ip_icmp.c diff -u src/sys/netinet/ip_icmp.c:1.120 src/sys/netinet/ip_icmp.c:1.121 --- src/sys/netinet/ip_icmp.c:1.120 Wed Jun 18 09:06:28 2008 +++ src/sys/netinet/ip_icmp.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_icmp.c,v 1.120 2008/06/18 09:06:28 yamt Exp $ */ +/* $NetBSD: ip_icmp.c,v 1.121 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -94,7 +94,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip_icmp.c,v 1.120 2008/06/18 09:06:28 yamt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip_icmp.c,v 1.121 2009/09/16 15:23:05 pooka Exp $"); #include "opt_ipsec.h" @@ -178,10 +178,14 @@ static int icmp_ratelimit(const struct in_addr *, const int, const int); +static void sysctl_netinet_icmp_setup(struct sysctllog **); void icmp_init(void) { + + sysctl_netinet_icmp_setup(NULL); + /* * This is only useful if the user initializes redirtimeout to * something other than zero. @@ -983,7 +987,8 @@ return (NETSTAT_SYSCTL(icmpstat_percpu, ICMP_NSTATS)); } -SYSCTL_SETUP(sysctl_net_inet_icmp_setup, "sysctl net.inet.icmp subtree setup") +static void +sysctl_netinet_icmp_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, Index: src/sys/netinet/ip_input.c diff -u src/sys/netinet/ip_input.c:1.283 src/sys/netinet/ip_input.c:1.284 --- src/sys/netinet/ip_input.c:1.283 Fri Jul 17 18:09:25 2009 +++ src/sys/netinet/ip_input.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_input.c,v 1.283 2009/07/17 18:09:25 minskim Exp $ */ +/* $NetBSD: ip_input.c,v 1.284 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip_input.c,v 1.283 2009/07/17 18:09:25 minskim Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip_input.c,v 1.284 2009/09/16 15:23:05 pooka Exp $"); #include "opt_inet.h" #include "opt_compat_netbsd.h" @@ -383,6 +383,8 @@ struct mowner ip_tx_mowner = MOWNER_INIT("internet", "tx"); #endif +static void sysctl_net_inet_ip_setup(struct sysctllog **); + /* * Compute IP limits derived from the value of nmbclusters. */ @@ -403,6 +405,8 @@ const struct protosw *pr; int i; + sysctl_net_inet_ip_setup(NULL); + pool_init(&inmulti_pool, sizeof(struct in_multi), 0, 0, 0, "inmltpl", NULL, IPL_SOFTNET); pool_init(&ipqent_pool, sizeof(struct ipqent), 0, 0, 0, "ipqepl", @@ -2248,7 +2252,8 @@ return (NETSTAT_SYSCTL(ipstat_percpu, IP_NSTATS)); } -SYSCTL_SETUP(sysctl_net_inet_ip_setup, "sysctl net.inet.ip subtree setup") +static void +sysctl_net_inet_ip_setup(struct sysctllog **clog) { extern int subnetsarelocal, hostzeroisbroadcast; Index: src/sys/netinet/raw_ip.c diff -u src/sys/netinet/raw_ip.c:1.109 src/sys/netinet/raw_ip.c:1.110 --- src/sys/netinet/raw_ip.c:1.109 Mon Jan 19 02:27:57 2009 +++ src/sys/netinet/raw_ip.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip.c,v 1.109 2009/01/19 02:27:57 christos Exp $ */ +/* $NetBSD: raw_ip.c,v 1.110 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.109 2009/01/19 02:27:57 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: raw_ip.c,v 1.110 2009/09/16 15:23:05 pooka Exp $"); #include "opt_inet.h" #include "opt_compat_netbsd.h" @@ -119,6 +119,8 @@ int rip_connect(struct inpcb *, struct mbuf *); void rip_disconnect(struct inpcb *); +static void sysctl_net_inet_raw_setup(struct sysctllog **); + /* * Nominal space allocated to a raw ip socket. */ @@ -136,6 +138,7 @@ rip_init(void) { + sysctl_net_inet_raw_setup(NULL); in_pcbinit(&rawcbtable, 1, 1); } @@ -696,7 +699,8 @@ return (error); } -SYSCTL_SETUP(sysctl_net_inet_raw_setup, "sysctl net.inet.raw subtree setup") +static void +sysctl_net_inet_raw_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, Index: src/sys/netinet/tcp_subr.c diff -u src/sys/netinet/tcp_subr.c:1.237 src/sys/netinet/tcp_subr.c:1.238 --- src/sys/netinet/tcp_subr.c:1.237 Wed May 27 17:41:03 2009 +++ src/sys/netinet/tcp_subr.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_subr.c,v 1.237 2009/05/27 17:41:03 pooka Exp $ */ +/* $NetBSD: tcp_subr.c,v 1.238 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.237 2009/05/27 17:41:03 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.238 2009/09/16 15:23:05 pooka Exp $"); #include "opt_inet.h" #include "opt_ipsec.h" @@ -395,6 +395,8 @@ icmp6_mtudisc_callback_register(tcp6_mtudisc_callback); #endif + tcp_usrreq_init(); + /* Initialize timer state. */ tcp_timer_init(); Index: src/sys/netinet/tcp_usrreq.c diff -u src/sys/netinet/tcp_usrreq.c:1.156 src/sys/netinet/tcp_usrreq.c:1.157 --- src/sys/netinet/tcp_usrreq.c:1.156 Wed Sep 9 22:41:28 2009 +++ src/sys/netinet/tcp_usrreq.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_usrreq.c,v 1.156 2009/09/09 22:41:28 darran Exp $ */ +/* $NetBSD: tcp_usrreq.c,v 1.157 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -95,7 +95,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tcp_usrreq.c,v 1.156 2009/09/09 22:41:28 darran Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_usrreq.c,v 1.157 2009/09/16 15:23:05 pooka Exp $"); #include "opt_inet.h" #include "opt_ipsec.h" @@ -2030,21 +2030,14 @@ NULL, 0, &tcp_abc_aggressive, 0, CTL_CREATE, CTL_EOL); } -/* - * Sysctl for tcp variables. - */ -#ifdef INET -SYSCTL_SETUP(sysctl_net_inet_tcp_setup, "sysctl net.inet.tcp subtree setup") +void +tcp_usrreq_init(void) { - sysctl_net_inet_tcp_setup2(clog, PF_INET, "inet", "tcp"); -} -#endif /* INET */ - +#ifdef INET + sysctl_net_inet_tcp_setup2(NULL, PF_INET, "inet", "tcp"); +#endif #ifdef INET6 -SYSCTL_SETUP(sysctl_net_inet6_tcp6_setup, "sysctl net.inet6.tcp6 subtree setup") -{ - - sysctl_net_inet_tcp_setup2(clog, PF_INET6, "inet6", "tcp6"); + sysctl_net_inet_tcp_setup2(NULL, PF_INET6, "inet6", "tcp6"); +#endif } -#endif /* INET6 */ Index: src/sys/netinet/tcp_var.h diff -u src/sys/netinet/tcp_var.h:1.161 src/sys/netinet/tcp_var.h:1.162 --- src/sys/netinet/tcp_var.h:1.161 Wed Sep 9 22:41:28 2009 +++ src/sys/netinet/tcp_var.h Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_var.h,v 1.161 2009/09/09 22:41:28 darran Exp $ */ +/* $NetBSD: tcp_var.h,v 1.162 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -881,6 +881,7 @@ void tcp_trace(short, short, struct tcpcb *, struct mbuf *, int); struct tcpcb * tcp_usrclosed(struct tcpcb *); +void tcp_usrreq_init(void); int tcp_usrreq(struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *); void tcp_xmit_timer(struct tcpcb *, uint32_t); Index: src/sys/netinet/udp_usrreq.c diff -u src/sys/netinet/udp_usrreq.c:1.178 src/sys/netinet/udp_usrreq.c:1.179 --- src/sys/netinet/udp_usrreq.c:1.178 Sun Jul 19 23:17:33 2009 +++ src/sys/netinet/udp_usrreq.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: udp_usrreq.c,v 1.178 2009/07/19 23:17:33 minskim Exp $ */ +/* $NetBSD: udp_usrreq.c,v 1.179 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.178 2009/07/19 23:17:33 minskim Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.179 2009/09/16 15:23:05 pooka Exp $"); #include "opt_inet.h" #include "opt_compat_netbsd.h" @@ -232,10 +232,14 @@ #endif /* UDP_CSUM_COUNTERS */ +static void sysctl_net_inet_udp_setup(struct sysctllog **); + void udp_init(void) { + sysctl_net_inet_udp_setup(NULL); + in_pcbinit(&udbtable, udbhashsize, udbhashsize); MOWNER_ATTACH(&udp_tx_mowner); @@ -1367,7 +1371,8 @@ /* * Sysctl for udp variables. */ -SYSCTL_SETUP(sysctl_net_inet_udp_setup, "sysctl net.inet.udp subtree setup") +static void +sysctl_net_inet_udp_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, Index: src/sys/netinet6/icmp6.c diff -u src/sys/netinet6/icmp6.c:1.152 src/sys/netinet6/icmp6.c:1.153 --- src/sys/netinet6/icmp6.c:1.152 Wed Mar 18 16:00:22 2009 +++ src/sys/netinet6/icmp6.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: icmp6.c,v 1.152 2009/03/18 16:00:22 cegger Exp $ */ +/* $NetBSD: icmp6.c,v 1.153 2009/09/16 15:23:05 pooka Exp $ */ /* $KAME: icmp6.c,v 1.217 2001/06/20 15:03:29 jinmei Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: icmp6.c,v 1.152 2009/03/18 16:00:22 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: icmp6.c,v 1.153 2009/09/16 15:23:05 pooka Exp $"); #include "opt_inet.h" #include "opt_ipsec.h" @@ -170,11 +170,14 @@ static struct rtentry *icmp6_mtudisc_clone(struct sockaddr *); static void icmp6_mtudisc_timeout(struct rtentry *, struct rttimer *); static void icmp6_redirect_timeout(struct rtentry *, struct rttimer *); +static void sysctl_net_inet6_icmp6_setup(struct sysctllog **); void icmp6_init(void) { + + sysctl_net_inet6_icmp6_setup(NULL); mld_init(); icmp6_mtudisc_timeout_q = rt_timer_queue_create(pmtu_expire); icmp6_redirect_timeout_q = rt_timer_queue_create(icmp6_redirtimeout); @@ -2756,8 +2759,8 @@ return (NETSTAT_SYSCTL(icmp6stat_percpu, ICMP6_NSTATS)); } -SYSCTL_SETUP(sysctl_net_inet6_icmp6_setup, - "sysctl net.inet6.icmp6 subtree setup") +static void +sysctl_net_inet6_icmp6_setup(struct sysctllog **clog) { extern int nd6_maxqueuelen; /* defined in nd6.c */ Index: src/sys/netinet6/ip6_input.c diff -u src/sys/netinet6/ip6_input.c:1.127 src/sys/netinet6/ip6_input.c:1.128 --- src/sys/netinet6/ip6_input.c:1.127 Fri May 1 03:23:39 2009 +++ src/sys/netinet6/ip6_input.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: ip6_input.c,v 1.127 2009/05/01 03:23:39 martin Exp $ */ +/* $NetBSD: ip6_input.c,v 1.128 2009/09/16 15:23:05 pooka Exp $ */ /* $KAME: ip6_input.c,v 1.188 2001/03/29 05:34:31 itojun Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip6_input.c,v 1.127 2009/05/01 03:23:39 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip6_input.c,v 1.128 2009/09/16 15:23:05 pooka Exp $"); #include "opt_inet.h" #include "opt_inet6.h" @@ -161,6 +161,7 @@ static int ip6_hopopts_input(u_int32_t *, u_int32_t *, struct mbuf **, int *); static struct mbuf *ip6_pullexthdr(struct mbuf *, size_t, int); +static void sysctl_net_inet6_ip6_setup(struct sysctllog **); /* * IP6 initialization: fill in IP6 protocol switch table. @@ -172,6 +173,7 @@ const struct ip6protosw *pr; int i; + sysctl_net_inet6_ip6_setup(NULL); pr = (const struct ip6protosw *)pffindproto(PF_INET6, IPPROTO_RAW, SOCK_RAW); if (pr == 0) panic("ip6_init"); @@ -1683,7 +1685,8 @@ return (NETSTAT_SYSCTL(ip6stat_percpu, IP6_NSTATS)); } -SYSCTL_SETUP(sysctl_net_inet6_ip6_setup, "sysctl net.inet6.ip6 subtree setup") +static void +sysctl_net_inet6_ip6_setup(struct sysctllog **clog) { #ifdef RFC2292 #define IS2292(x, y) ((in6p->in6p_flags & IN6P_RFC2292) ? (x) : (y)) Index: src/sys/netinet6/ip6_mroute.c diff -u src/sys/netinet6/ip6_mroute.c:1.97 src/sys/netinet6/ip6_mroute.c:1.98 --- src/sys/netinet6/ip6_mroute.c:1.97 Wed Mar 18 16:00:23 2009 +++ src/sys/netinet6/ip6_mroute.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: ip6_mroute.c,v 1.97 2009/03/18 16:00:23 cegger Exp $ */ +/* $NetBSD: ip6_mroute.c,v 1.98 2009/09/16 15:23:05 pooka Exp $ */ /* $KAME: ip6_mroute.c,v 1.49 2001/07/25 09:21:18 jinmei Exp $ */ /* @@ -117,7 +117,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip6_mroute.c,v 1.97 2009/03/18 16:00:23 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip6_mroute.c,v 1.98 2009/09/16 15:23:05 pooka Exp $"); #include "opt_inet.h" #include "opt_mrouting.h" @@ -293,6 +293,7 @@ static int del_m6if(mifi_t *); static int add_m6fc(struct mf6cctl *); static int del_m6fc(struct mf6cctl *); +static void sysctl_net_inet6_pim6_setup(struct sysctllog **); static callout_t expire_upcalls_ch; @@ -300,6 +301,7 @@ pim6_init(void) { + sysctl_net_inet6_pim6_setup(NULL); pim6stat_percpu = percpu_alloc(sizeof(uint64_t) * PIM6_NSTATS); } @@ -1934,7 +1936,8 @@ return (NETSTAT_SYSCTL(pim6stat_percpu, PIM6_NSTATS)); } -SYSCTL_SETUP(sysctl_net_inet6_pim6_setup, "sysctl net.inet6.pim6 subtree setup") +static void +sysctl_net_inet6_pim6_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, CTLFLAG_PERMANENT, Index: src/sys/netinet6/raw_ip6.c diff -u src/sys/netinet6/raw_ip6.c:1.104 src/sys/netinet6/raw_ip6.c:1.105 --- src/sys/netinet6/raw_ip6.c:1.104 Wed May 6 21:41:59 2009 +++ src/sys/netinet6/raw_ip6.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip6.c,v 1.104 2009/05/06 21:41:59 elad Exp $ */ +/* $NetBSD: raw_ip6.c,v 1.105 2009/09/16 15:23:05 pooka Exp $ */ /* $KAME: raw_ip6.c,v 1.82 2001/07/23 18:57:56 jinmei Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: raw_ip6.c,v 1.104 2009/05/06 21:41:59 elad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: raw_ip6.c,v 1.105 2009/09/16 15:23:05 pooka Exp $"); #include "opt_ipsec.h" @@ -126,6 +126,8 @@ #define RIP6_STATINC(x) _NET_STATINC(rip6stat_percpu, x) +static void sysctl_net_inet6_raw6_setup(struct sysctllog **); + /* * Initialize raw connection block queue. */ @@ -133,6 +135,7 @@ rip6_init(void) { + sysctl_net_inet6_raw6_setup(NULL); in6_pcbinit(&raw6cbtable, 1, 1); rip6stat_percpu = percpu_alloc(sizeof(uint64_t) * RIP6_NSTATS); @@ -870,7 +873,8 @@ return (NETSTAT_SYSCTL(rip6stat_percpu, RIP6_NSTATS)); } -SYSCTL_SETUP(sysctl_net_inet6_raw6_setup, "sysctl net.inet6.raw6 subtree setup") +static void +sysctl_net_inet6_raw6_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, Index: src/sys/netinet6/udp6_usrreq.c diff -u src/sys/netinet6/udp6_usrreq.c:1.87 src/sys/netinet6/udp6_usrreq.c:1.88 --- src/sys/netinet6/udp6_usrreq.c:1.87 Wed Mar 18 16:00:23 2009 +++ src/sys/netinet6/udp6_usrreq.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: udp6_usrreq.c,v 1.87 2009/03/18 16:00:23 cegger Exp $ */ +/* $NetBSD: udp6_usrreq.c,v 1.88 2009/09/16 15:23:05 pooka Exp $ */ /* $KAME: udp6_usrreq.c,v 1.86 2001/05/27 17:33:00 itojun Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: udp6_usrreq.c,v 1.87 2009/03/18 16:00:23 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udp6_usrreq.c,v 1.88 2009/09/16 15:23:05 pooka Exp $"); #include <sys/param.h> #include <sys/malloc.h> @@ -113,11 +113,13 @@ percpu_t *udp6stat_percpu; static void udp6_notify(struct in6pcb *, int); +static void sysctl_net_inet6_udp6_setup(struct sysctllog **); void udp6_init(void) { - /* initialization done in udp_init() due to initialization order */ + + sysctl_net_inet6_udp6_setup(NULL); } /* @@ -414,7 +416,8 @@ return (NETSTAT_SYSCTL(udp6stat_percpu, UDP6_NSTATS)); } -SYSCTL_SETUP(sysctl_net_inet6_udp6_setup, "sysctl net.inet6.udp6 subtree setup") +static void +sysctl_net_inet6_udp6_setup(struct sysctllog **clog) { sysctl_createv(clog, 0, NULL, NULL, CTLFLAG_PERMANENT, Index: src/sys/rump/librump/rumpkern/rump.c diff -u src/sys/rump/librump/rumpkern/rump.c:1.114 src/sys/rump/librump/rumpkern/rump.c:1.115 --- src/sys/rump/librump/rumpkern/rump.c:1.114 Sun Sep 13 19:09:13 2009 +++ src/sys/rump/librump/rumpkern/rump.c Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rump.c,v 1.114 2009/09/13 19:09:13 pooka Exp $ */ +/* $NetBSD: rump.c,v 1.115 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (c) 2007 Antti Kantee. All Rights Reserved. @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.114 2009/09/13 19:09:13 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.115 2009/09/16 15:23:05 pooka Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -246,13 +246,13 @@ callout_startup(); callout_init_cpu(&rump_cpu); + sysctl_init(); kqueue_init(); iostat_init(); uid_init(); percpu_init(); fd_sys_init(); module_init(); - sysctl_init(); softint_init(&rump_cpu); devsw_init(); secmodel_start(); @@ -270,6 +270,8 @@ panic("aiodoned"); } + sysctl_finalize(); + rumpuser_gethostname(hostname, MAXHOSTNAMELEN, &error); hostnamelen = strlen(hostname); Index: src/sys/sys/sysctl.h diff -u src/sys/sys/sysctl.h:1.186 src/sys/sys/sysctl.h:1.187 --- src/sys/sys/sysctl.h:1.186 Fri Aug 21 22:51:00 2009 +++ src/sys/sys/sysctl.h Wed Sep 16 15:23:05 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sysctl.h,v 1.186 2009/08/21 22:51:00 dyoung Exp $ */ +/* $NetBSD: sysctl.h,v 1.187 2009/09/16 15:23:05 pooka Exp $ */ /* * Copyright (c) 1989, 1993 @@ -1129,6 +1129,7 @@ * subsystem setup */ void sysctl_init(void); +void sysctl_finalize(void); /* * typical syscall call order