diff -ru2 --exclude=compile ../sys/dev/ata/ata-disk.c ./dev/ata/ata-disk.c --- ../sys/dev/ata/ata-disk.c Sun May 6 18:41:53 2001 +++ ./dev/ata/ata-disk.c Mon Jun 4 02:19:04 2001 @@ -83,8 +83,10 @@ static u_int32_t adp_lun_map = 0; static MALLOC_DEFINE(M_AD, "AD driver", "ATA disk driver"); -static int ata_dma, ata_wc, ata_tags; -TUNABLE_INT_DECL("hw.ata.ata_dma", 1, ata_dma); -TUNABLE_INT_DECL("hw.ata.wc", 0, ata_wc); -TUNABLE_INT_DECL("hw.ata.tags", 0, ata_tags); +static int ata_dma = 1; +static int ata_wc = 0; +static int ata_tags = 0; +TUNABLE_INT("hw.ata.ata_dma", &ata_dma); +TUNABLE_INT("hw.ata.wc", &ata_wc); +TUNABLE_INT("hw.ata.tags", &ata_tags); /* sysctl vars */ diff -ru2 --exclude=compile ../sys/dev/ata/atapi-all.c ./dev/ata/atapi-all.c --- ../sys/dev/ata/atapi-all.c Tue May 29 12:49:03 2001 +++ ./dev/ata/atapi-all.c Mon Jun 4 02:19:11 2001 @@ -55,6 +55,6 @@ /* internal vars */ static MALLOC_DEFINE(M_ATAPI, "ATAPI generic", "ATAPI driver generic layer"); -static int atapi_dma; -TUNABLE_INT_DECL("hw.ata.atapi_dma", 0, atapi_dma); +static int atapi_dma = 0; +TUNABLE_INT("hw.ata.atapi_dma", &atapi_dma); /* systcl vars */ diff -ru2 --exclude=compile ../sys/dev/sound/pcm/sound.c ./dev/sound/pcm/sound.c --- ../sys/dev/sound/pcm/sound.c Sun May 27 12:48:55 2001 +++ ./dev/sound/pcm/sound.c Mon Jun 4 02:19:46 2001 @@ -93,6 +93,6 @@ #ifdef USING_DEVFS -static int snd_unit; -TUNABLE_INT_DECL("hw.snd.unit", 0, snd_unit); +static int snd_unit = 0; +TUNABLE_INT("hw.snd.unit", &snd_unit); #endif diff -ru2 --exclude=compile ../sys/kern/kern_ktr.c ./kern/kern_ktr.c --- ../sys/kern/kern_ktr.c Wed Mar 28 00:38:23 2001 +++ ./kern/kern_ktr.c Mon Jun 4 02:15:22 2001 @@ -88,10 +88,10 @@ SYSCTL_INT(_debug_ktr, OID_AUTO, extend, CTLFLAG_RD, &ktr_extend, 0, ""); -int ktr_cpumask; -TUNABLE_INT_DECL("debug.ktr.cpumask", KTR_CPUMASK, ktr_cpumask); +int ktr_cpumask = KTR_CPUMASK; +TUNABLE_INT("debug.ktr.cpumask", &ktr_cpumask); SYSCTL_INT(_debug_ktr, OID_AUTO, cpumask, CTLFLAG_RW, &ktr_cpumask, 0, ""); -int ktr_mask; -TUNABLE_INT_DECL("debug.ktr.mask", KTR_MASK, ktr_mask); +int ktr_mask = KTR_MASK; +TUNABLE_INT("debug.ktr.mask", &ktr_mask); SYSCTL_INT(_debug_ktr, OID_AUTO, mask, CTLFLAG_RW, &ktr_mask, 0, ""); @@ -102,6 +102,6 @@ struct ktr_entry ktr_buf[KTR_ENTRIES]; -int ktr_verbose; -TUNABLE_INT_DECL("debug.ktr.verbose", KTR_VERBOSE_DEFAULT, ktr_verbose); +int ktr_verbose = KTR_VERBOSE_DEFAULT; +TUNABLE_INT("debug.ktr.verbose", &ktr_verbose); SYSCTL_INT(_debug_ktr, OID_AUTO, verbose, CTLFLAG_RW, &ktr_verbose, 0, ""); diff -ru2 --exclude=compile ../sys/kern/kern_linker.c ./kern/kern_linker.c --- ../sys/kern/kern_linker.c Thu Mar 22 06:39:02 2001 +++ ./kern/kern_linker.c Fri Jun 1 17:51:53 2001 @@ -1209,12 +1209,10 @@ */ -static char def_linker_path[] = "/boot/modules/;/modules/;/boot/kernel/"; -static char linker_path[MAXPATHLEN] = ""; +static char linker_path[MAXPATHLEN] = "/boot/modules/;/modules/;/boot/kernel/"; SYSCTL_STRING(_kern, OID_AUTO, module_path, CTLFLAG_RW, linker_path, sizeof(linker_path), "module load search path"); -TUNABLE_STR_DECL("module_path", def_linker_path, linker_path, - sizeof(linker_path)); +TUNABLE_STR("module_path", linker_path, sizeof(linker_path)); static char *linker_ext_list[] = { diff -ru2 --exclude=compile ../sys/kern/kern_malloc.c ./kern/kern_malloc.c --- ../sys/kern/kern_malloc.c Tue May 1 06:41:52 2001 +++ ./kern/kern_malloc.c Mon Jun 4 02:15:30 2001 @@ -425,5 +425,4 @@ u_long npg; u_long mem_size; - u_long xvm_kmem_size; #if ((MAXALLOCSAVE & (MAXALLOCSAVE - 1)) != 0) @@ -451,19 +450,19 @@ * so make sure that there is enough space. */ - xvm_kmem_size = VM_KMEM_SIZE; + vm_kmem_size = VM_KMEM_SIZE; mem_size = cnt.v_page_count * PAGE_SIZE; #if defined(VM_KMEM_SIZE_SCALE) - if ((mem_size / VM_KMEM_SIZE_SCALE) > xvm_kmem_size) - xvm_kmem_size = mem_size / VM_KMEM_SIZE_SCALE; + if ((mem_size / VM_KMEM_SIZE_SCALE) > vm_kmem_size) + vm_kmem_size = mem_size / VM_KMEM_SIZE_SCALE; #endif #if defined(VM_KMEM_SIZE_MAX) - if (xvm_kmem_size >= VM_KMEM_SIZE_MAX) - xvm_kmem_size = VM_KMEM_SIZE_MAX; + if (vm_kmem_size >= VM_KMEM_SIZE_MAX) + vm_kmem_size = VM_KMEM_SIZE_MAX; #endif /* Allow final override from the kernel environment */ - TUNABLE_INT_FETCH("kern.vm.kmem.size", xvm_kmem_size, vm_kmem_size); + TUNABLE_INT_FETCH("kern.vm.kmem.size", &vm_kmem_size); /* diff -ru2 --exclude=compile ../sys/kern/subr_witness.c ./kern/subr_witness.c --- ../sys/kern/subr_witness.c Thu May 17 18:39:10 2001 +++ ./kern/subr_witness.c Mon Jun 4 02:15:54 2001 @@ -145,6 +145,6 @@ MALLOC_DEFINE(M_WITNESS, "witness", "witness structure"); -static int witness_watch; -TUNABLE_INT_DECL("debug.witness_watch", 1, witness_watch); +static int witness_watch = 1; +TUNABLE_INT("debug.witness_watch", &witness_watch); SYSCTL_INT(_debug, OID_AUTO, witness_watch, CTLFLAG_RD, &witness_watch, 0, ""); @@ -156,19 +156,19 @@ * - locks are held when going to sleep. */ -int witness_ddb; #ifdef WITNESS_DDB -TUNABLE_INT_DECL("debug.witness_ddb", 1, witness_ddb); +int witness_ddb = 1; #else -TUNABLE_INT_DECL("debug.witness_ddb", 0, witness_ddb); +int witness_ddb = 0; #endif +TUNABLE_INT("debug.witness_ddb", &witness_ddb); SYSCTL_INT(_debug, OID_AUTO, witness_ddb, CTLFLAG_RW, &witness_ddb, 0, ""); #endif /* DDB */ -int witness_skipspin; #ifdef WITNESS_SKIPSPIN -TUNABLE_INT_DECL("debug.witness_skipspin", 1, witness_skipspin); +int witness_skipspin = 1; #else -TUNABLE_INT_DECL("debug.witness_skipspin", 0, witness_skipspin); +int witness_skipspin = 0; #endif +TUNABLE_INT("debug.witness_skipspin", &witness_skipspin); SYSCTL_INT(_debug, OID_AUTO, witness_skipspin, CTLFLAG_RD, &witness_skipspin, 0, ""); diff -ru2 --exclude=compile ../sys/kern/uipc_mbuf.c ./kern/uipc_mbuf.c --- ../sys/kern/uipc_mbuf.c Fri Jun 1 06:50:42 2001 +++ ./kern/uipc_mbuf.c Mon Jun 4 02:16:42 2001 @@ -52,4 +52,8 @@ #include +#ifndef NMBCLUSTERS +#define NMBCLUSTERS (512 + MAXUSERS * 16) +#endif + static void mbinit(void *); SYSINIT(mbuf, SI_SUB_MBUF, SI_ORDER_FIRST, mbinit, NULL) @@ -62,6 +66,6 @@ int max_hdr; int max_datalen; -int nmbclusters; -int nmbufs; +int nmbclusters = NMBCLUSTERS; +int nmbufs = NMBCLUSTERS * 4; int nmbcnt; u_long m_mballoc_wid = 0; @@ -100,11 +104,7 @@ "Maximum number of ext_buf counters available"); -#ifndef NMBCLUSTERS -#define NMBCLUSTERS (512 + MAXUSERS * 16) -#endif - -TUNABLE_INT_DECL("kern.ipc.nmbclusters", NMBCLUSTERS, nmbclusters); -TUNABLE_INT_DECL("kern.ipc.nmbufs", NMBCLUSTERS * 4, nmbufs); -TUNABLE_INT_DECL("kern.ipc.nmbcnt", EXT_COUNTERS, nmbcnt); +TUNABLE_INT("kern.ipc.nmbclusters", &nmbclusters); +TUNABLE_INT("kern.ipc.nmbufs", &nmbufs); +TUNABLE_INT("kern.ipc.nmbcnt", &nmbcnt); static void m_reclaim(void); @@ -126,4 +126,10 @@ vm_offset_t maxaddr; vm_size_t mb_map_size; + + /* Sanity checks and pre-initialization for non-constants */ + if (nmbufs < nmbclusters * 2) + nmbufs = nmbclusters * 2; + if (nmbcnt == 0) + nmbcnt = EXT_COUNTERS; /* diff -ru2 --exclude=compile ../sys/kern/uipc_socket2.c ./kern/uipc_socket2.c --- ../sys/kern/uipc_socket2.c Fri Jun 1 18:51:26 2001 +++ ./kern/uipc_socket2.c Mon Jun 4 02:16:58 2001 @@ -1013,6 +1013,6 @@ static void init_maxsockets(void *ignored) { - TUNABLE_INT_FETCH("kern.ipc.maxsockets", 0, maxsockets); - maxsockets = imax(maxsockets, imax(maxfiles, nmbclusters)); + TUNABLE_INT_FETCH("kern.ipc.maxsockets", &maxsockets); + maxsockets = imax(maxsockets, imax(maxfiles, nmbclusters)); } SYSINIT(param, SI_SUB_TUNABLES, SI_ORDER_ANY, init_maxsockets, NULL); diff -ru2 --exclude=compile ../sys/net/if_loop.c ./net/if_loop.c --- ../sys/net/if_loop.c Wed Jan 31 00:40:33 2001 +++ ./net/if_loop.c Mon Jun 4 02:17:13 2001 @@ -102,5 +102,5 @@ #endif -static int nloop; +static int nloop = 1; struct ifnet *loif; /* Used externally */ @@ -180,5 +180,5 @@ switch (type) { case MOD_LOAD: - TUNABLE_INT_FETCH("net.nloop", 1, nloop); + TUNABLE_INT_FETCH("net.nloop", &nloop); if (nloop < 1) /* sanity check */ nloop = 1; diff -ru2 --exclude=compile ../sys/netinet/tcp_subr.c ./netinet/tcp_subr.c --- ../sys/netinet/tcp_subr.c Fri Apr 20 06:43:37 2001 +++ ./netinet/tcp_subr.c Mon Jun 4 02:17:19 2001 @@ -181,5 +181,5 @@ tcp_init() { - int hashsize; + int hashsize = TCBHASHSIZE; tcp_ccgen = 1; @@ -195,5 +195,5 @@ LIST_INIT(&tcb); tcbinfo.listhead = &tcb; - TUNABLE_INT_FETCH("net.inet.tcp.tcbhashsize", TCBHASHSIZE, hashsize); + TUNABLE_INT_FETCH("net.inet.tcp.tcbhashsize", &hashsize); if (!powerof2(hashsize)) { printf("WARNING: TCB hash size not a power of 2\n"); diff -ru2 --exclude=compile ../sys/sys/kernel.h ./sys/kernel.h --- ../sys/sys/kernel.h Wed May 23 12:42:25 2001 +++ ./sys/kernel.h Mon Jun 4 02:17:43 2001 @@ -44,5 +44,5 @@ #ifndef _SYS_KERNEL_H_ -#define _SYS_KERNEL_H_ +#define _SYS_KERNEL_H_ #include @@ -259,29 +259,32 @@ */ -#define TUNABLE_INT_DECL(path, defval, var) \ -static void __Tunable_ ## var (void *ignored) \ -{ \ - TUNABLE_INT_FETCH((path), (defval), (var)) \ -} \ -SYSINIT(__Tunable_init_ ## var, SI_SUB_TUNABLES, SI_ORDER_MIDDLE, __Tunable_ ## var , NULL); - -#define TUNABLE_INT_FETCH(path, defval, var) \ - if (!getenv_int((path), &(var))) \ - (var) = (defval); +#define TUNABLE_INT(path, var) \ +static void __Tunable_ ## var (void *ignored) \ +{ \ + TUNABLE_INT_FETCH((path), (var)); \ +} \ +SYSINIT(__Tunable_init_ ## var, SI_SUB_TUNABLES, SI_ORDER_MIDDLE, __Tunable_ ## var , NULL) + +#define TUNABLE_INT_FETCH(path, var) \ +do { \ + getenv_int((path), (var)); \ +} while (0) -#define TUNABLE_STR_DECL(path, defval, var, size) \ +#define TUNABLE_STR(path, var, size) \ static void __Tunable_ ## var (void *ignored) \ { \ - TUNABLE_STR_FETCH((path), (defval), (var), (size)) \ + TUNABLE_STR_FETCH((path), (var), (size)); \ } \ -SYSINIT(__Tunable_init_ ## var, SI_SUB_TUNABLES, SI_ORDER_MIDDLE, __Tunable_ ## var , NULL); +SYSINIT(__Tunable_init_ ## var, SI_SUB_TUNABLES, SI_ORDER_MIDDLE, __Tunable_ ## var , NULL) -#define TUNABLE_STR_FETCH(path, defval, var, size) \ - char *tmp; \ - tmp = getenv((path)); \ - if (tmp == NULL) \ - tmp = (defval); \ - strncpy((var), tmp, (size)); \ - (var)[(size) - 1] = 0; +#define TUNABLE_STR_FETCH(path, var, size) \ +do { \ + char *tmp; \ + tmp = getenv((path)); \ + if (tmp != NULL) { \ + strncpy((var), tmp, (size)); \ + (var)[(size) - 1] = 0; \ + } \ +} while (0) struct intr_config_hook {