diff options
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/dev/ata/ata-disk.c | 6 | ||||
| -rw-r--r-- | sys/dev/ata/atapi-all.c | 2 | ||||
| -rw-r--r-- | sys/dev/sound/pcm/sound.c | 2 | ||||
| -rw-r--r-- | sys/kern/kern_environment.c | 15 | ||||
| -rw-r--r-- | sys/kern/kern_ktr.c | 6 | ||||
| -rw-r--r-- | sys/kern/kern_malloc.c | 2 | ||||
| -rw-r--r-- | sys/kern/subr_witness.c | 6 | ||||
| -rw-r--r-- | sys/kern/uipc_mbuf.c | 6 | ||||
| -rw-r--r-- | sys/kern/uipc_sockbuf.c | 2 | ||||
| -rw-r--r-- | sys/kern/uipc_socket2.c | 2 | ||||
| -rw-r--r-- | sys/net/if_loop.c | 2 | ||||
| -rw-r--r-- | sys/netinet/tcp_subr.c | 2 | ||||
| -rw-r--r-- | sys/netinet/tcp_timewait.c | 2 | ||||
| -rw-r--r-- | sys/sys/kernel.h | 50 |
14 files changed, 72 insertions, 33 deletions
diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c index ebf789be251a..d1950af17ab6 100644 --- a/sys/dev/ata/ata-disk.c +++ b/sys/dev/ata/ata-disk.c @@ -85,9 +85,9 @@ static MALLOC_DEFINE(M_AD, "AD driver", "ATA disk driver"); 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); +TUNABLE_INT("hw.ata.ata_dma", &ata_dma); +TUNABLE_INT("hw.ata.wc", &ata_wc); +TUNABLE_INT("hw.ata.tags", &ata_tags); /* sysctl vars */ SYSCTL_DECL(_hw_ata); diff --git a/sys/dev/ata/atapi-all.c b/sys/dev/ata/atapi-all.c index bb317468b1de..ac15c7e5785d 100644 --- a/sys/dev/ata/atapi-all.c +++ b/sys/dev/ata/atapi-all.c @@ -55,7 +55,7 @@ static char *atapi_skey2str(u_int8_t); /* internal vars */ static MALLOC_DEFINE(M_ATAPI, "ATAPI generic", "ATAPI driver generic layer"); static int atapi_dma = 0; -TUNABLE_INT("hw.ata.atapi_dma", atapi_dma); +TUNABLE_INT("hw.ata.atapi_dma", &atapi_dma); /* systcl vars */ SYSCTL_DECL(_hw_ata); diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index 7db70f942c83..da3c05e82341 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -93,7 +93,7 @@ static devclass_t pcm_devclass; #ifdef USING_DEVFS static int snd_unit = 0; -TUNABLE_INT("hw.snd.unit", snd_unit); +TUNABLE_INT("hw.snd.unit", &snd_unit); #endif SYSCTL_NODE(_hw, OID_AUTO, snd, CTLFLAG_RD, 0, "Sound driver"); diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c index 000306213d32..561f63ddca42 100644 --- a/sys/kern/kern_environment.c +++ b/sys/kern/kern_environment.c @@ -151,3 +151,18 @@ kernenv_next(char *cp) return(cp); } +void +tunable_int_init(void *data) +{ + struct tunable_int *d = (struct tunable_int *)data; + + TUNABLE_INT_FETCH(d->path, d->var); +} + +void +tunable_str_init(void *data) +{ + struct tunable_str *d = (struct tunable_str *)data; + + TUNABLE_STR_FETCH(d->path, d->var, d->size); +} diff --git a/sys/kern/kern_ktr.c b/sys/kern/kern_ktr.c index eedca0ea4b89..80af2ab75faf 100644 --- a/sys/kern/kern_ktr.c +++ b/sys/kern/kern_ktr.c @@ -88,11 +88,11 @@ int ktr_extend = KTR_EXTEND_DEFAULT; SYSCTL_INT(_debug_ktr, OID_AUTO, extend, CTLFLAG_RD, &ktr_extend, 0, ""); int ktr_cpumask = KTR_CPUMASK; -TUNABLE_INT("debug.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 = KTR_MASK; -TUNABLE_INT("debug.ktr.mask", ktr_mask); +TUNABLE_INT("debug.ktr.mask", &ktr_mask); SYSCTL_INT(_debug_ktr, OID_AUTO, mask, CTLFLAG_RW, &ktr_mask, 0, ""); int ktr_entries = KTR_ENTRIES; @@ -102,7 +102,7 @@ volatile int ktr_idx = 0; struct ktr_entry ktr_buf[KTR_ENTRIES]; int ktr_verbose = KTR_VERBOSE_DEFAULT; -TUNABLE_INT("debug.ktr.verbose", ktr_verbose); +TUNABLE_INT("debug.ktr.verbose", &ktr_verbose); SYSCTL_INT(_debug_ktr, OID_AUTO, verbose, CTLFLAG_RW, &ktr_verbose, 0, ""); #ifdef KTR diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index 7eef2b641fa6..f460d53c5ae4 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -463,7 +463,7 @@ kmeminit(dummy) #endif /* Allow final override from the kernel environment */ - TUNABLE_INT_FETCH("kern.vm.kmem.size", vm_kmem_size); + TUNABLE_INT_FETCH("kern.vm.kmem.size", &vm_kmem_size); /* * Limit kmem virtual size to twice the physical memory. diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c index fb788aa46647..1a23ab432c2a 100644 --- a/sys/kern/subr_witness.c +++ b/sys/kern/subr_witness.c @@ -145,7 +145,7 @@ static struct lock_instance *find_instance(struct lock_list_entry *lock_list, MALLOC_DEFINE(M_WITNESS, "witness", "witness structure"); static int witness_watch = 1; -TUNABLE_INT("debug.witness_watch", witness_watch); +TUNABLE_INT("debug.witness_watch", &witness_watch); SYSCTL_INT(_debug, OID_AUTO, witness_watch, CTLFLAG_RD, &witness_watch, 0, ""); #ifdef DDB @@ -160,7 +160,7 @@ int witness_ddb = 1; #else int witness_ddb = 0; #endif -TUNABLE_INT("debug.witness_ddb", witness_ddb); +TUNABLE_INT("debug.witness_ddb", &witness_ddb); SYSCTL_INT(_debug, OID_AUTO, witness_ddb, CTLFLAG_RW, &witness_ddb, 0, ""); #endif /* DDB */ @@ -169,7 +169,7 @@ int witness_skipspin = 1; #else int witness_skipspin = 0; #endif -TUNABLE_INT("debug.witness_skipspin", witness_skipspin); +TUNABLE_INT("debug.witness_skipspin", &witness_skipspin); SYSCTL_INT(_debug, OID_AUTO, witness_skipspin, CTLFLAG_RD, &witness_skipspin, 0, ""); diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index 3a212335057c..df9db286c016 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -103,9 +103,9 @@ SYSCTL_INT(_kern_ipc, OID_AUTO, nmbufs, CTLFLAG_RD, &nmbufs, 0, SYSCTL_INT(_kern_ipc, OID_AUTO, nmbcnt, CTLFLAG_RD, &nmbcnt, 0, "Maximum number of ext_buf counters available"); -TUNABLE_INT("kern.ipc.nmbclusters", nmbclusters); -TUNABLE_INT("kern.ipc.nmbufs", nmbufs); -TUNABLE_INT("kern.ipc.nmbcnt", nmbcnt); +TUNABLE_INT("kern.ipc.nmbclusters", &nmbclusters); +TUNABLE_INT("kern.ipc.nmbufs", &nmbufs); +TUNABLE_INT("kern.ipc.nmbcnt", &nmbcnt); static void m_reclaim(void); diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c index 48862844d8b2..970dcec6a3b3 100644 --- a/sys/kern/uipc_sockbuf.c +++ b/sys/kern/uipc_sockbuf.c @@ -1012,7 +1012,7 @@ SYSCTL_INT(_kern_ipc, KIPC_SOCKBUF_WASTE, sockbuf_waste_factor, CTLFLAG_RW, */ static void init_maxsockets(void *ignored) { - TUNABLE_INT_FETCH("kern.ipc.maxsockets", maxsockets); + 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 --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c index 48862844d8b2..970dcec6a3b3 100644 --- a/sys/kern/uipc_socket2.c +++ b/sys/kern/uipc_socket2.c @@ -1012,7 +1012,7 @@ SYSCTL_INT(_kern_ipc, KIPC_SOCKBUF_WASTE, sockbuf_waste_factor, CTLFLAG_RW, */ static void init_maxsockets(void *ignored) { - TUNABLE_INT_FETCH("kern.ipc.maxsockets", maxsockets); + 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 --git a/sys/net/if_loop.c b/sys/net/if_loop.c index 07de0d7a822f..0e9ac65577a7 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -179,7 +179,7 @@ loop_modevent(module_t mod, int type, void *data) switch (type) { case MOD_LOAD: - TUNABLE_INT_FETCH("net.nloop", nloop); + TUNABLE_INT_FETCH("net.nloop", &nloop); if (nloop < 1) /* sanity check */ nloop = 1; for (i = 0; i < nloop; i++) diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 4872626bfdfe..3857b7513029 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -194,7 +194,7 @@ tcp_init() LIST_INIT(&tcb); tcbinfo.listhead = &tcb; - TUNABLE_INT_FETCH("net.inet.tcp.tcbhashsize", hashsize); + TUNABLE_INT_FETCH("net.inet.tcp.tcbhashsize", &hashsize); if (!powerof2(hashsize)) { printf("WARNING: TCB hash size not a power of 2\n"); hashsize = 512; /* safe default */ diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c index 4872626bfdfe..3857b7513029 100644 --- a/sys/netinet/tcp_timewait.c +++ b/sys/netinet/tcp_timewait.c @@ -194,7 +194,7 @@ tcp_init() LIST_INIT(&tcb); tcbinfo.listhead = &tcb; - TUNABLE_INT_FETCH("net.inet.tcp.tcbhashsize", hashsize); + TUNABLE_INT_FETCH("net.inet.tcp.tcbhashsize", &hashsize); if (!powerof2(hashsize)) { printf("WARNING: TCB hash size not a power of 2\n"); hashsize = 512; /* safe default */ diff --git a/sys/sys/kernel.h b/sys/sys/kernel.h index ca893951b6a1..7e8ea63eaa4a 100644 --- a/sys/sys/kernel.h +++ b/sys/sys/kernel.h @@ -258,24 +258,48 @@ void sysinit_add __P((struct sysinit **set)); * in a SYSINIT function at SI_SUB_TUNABLES with SI_ORDER_LAST. */ -#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) +extern void tunable_int_init(void *); +struct tunable_int { + const char *path; + int *var; +}; +#define TUNABLE_INT(path, var) \ + _TUNABLE_INT((path), (var), __LINE__) +#define _TUNABLE_INT(path, var, line) \ + __TUNABLE_INT((path), (var), line) + +#define __TUNABLE_INT(path, var, line) \ + static struct tunable_int __tunable_int_ ## line = { \ + path, \ + var, \ + }; \ + SYSINIT(__Tunable_init_ ## line, SI_SUB_TUNABLES, SI_ORDER_MIDDLE, \ + tunable_int_init, &__tunable_int_ ## line) #define TUNABLE_INT_FETCH(path, var) \ do { \ - getenv_int((path), &(var)); \ + getenv_int((path), (var)); \ } while (0) -#define TUNABLE_STR(path, var, size) \ -static void __Tunable_ ## var (void *ignored) \ -{ \ - TUNABLE_STR_FETCH((path), (var), (size)); \ -} \ -SYSINIT(__Tunable_init_ ## var, SI_SUB_TUNABLES, SI_ORDER_MIDDLE, __Tunable_ ## var , NULL) +extern void tunable_str_init(void *); +struct tunable_str { + const char *path; + char *var; + int size; +}; +#define TUNABLE_STR(path, var, size) \ + _TUNABLE_STR((path), (var), (size), __LINE__) +#define _TUNABLE_STR(path, var, size, line) \ + __TUNABLE_STR((path), (var), (size), line) + +#define __TUNABLE_STR(path, var, size, line) \ + static struct tunable_str __tunable_str_ ## line = { \ + path, \ + var, \ + size, \ + }; \ + SYSINIT(__Tunable_init_ ## line, SI_SUB_TUNABLES, SI_ORDER_MIDDLE, \ + tunable_str_init, &__tunable_str_ ## line) #define TUNABLE_STR_FETCH(path, var, size) \ do { \ |
