From: Sascha Wildner Date: Thu, 22 Apr 2010 09:14:47 +0000 (+0200) Subject: kernel: Add TUNABLE_LONG. X-Git-Tag: v2.7.3~77 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/36f5b272d4fd7e279a6d4bdbd3be44d062968105 kernel: Add TUNABLE_LONG. --- diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c index bd52f12aec..8ad765086f 100644 --- a/sys/kern/kern_environment.c +++ b/sys/kern/kern_environment.c @@ -424,6 +424,14 @@ tunable_int_init(void *data) TUNABLE_INT_FETCH(d->path, d->var); } +void +tunable_long_init(void *data) +{ + struct tunable_long *d = (struct tunable_long *)data; + + TUNABLE_LONG_FETCH(d->path, d->var); +} + void tunable_quad_init(void *data) { diff --git a/sys/sys/kernel.h b/sys/sys/kernel.h index 950ededc74..269dda68cc 100644 --- a/sys/sys/kernel.h +++ b/sys/sys/kernel.h @@ -309,6 +309,27 @@ struct tunable_int { tunable_int_init, &__tunable_int_ ## line) #define TUNABLE_INT_FETCH(path, var) kgetenv_int((path), (var)) + +extern void tunable_long_init(void *); + +struct tunable_long { + const char *path; + long *var; +}; +#define TUNABLE_LONG(path, var) \ + _TUNABLE_LONG((path), (var), __LINE__) +#define _TUNABLE_LONG(path, var, line) \ + __TUNABLE_LONG((path), (var), line) + +#define __TUNABLE_LONG(path, var, line) \ + static struct tunable_long __tunable_long_ ## line = { \ + path, \ + var, \ + }; \ + SYSINIT(__Tunable_init_ ## line, \ + SI_BOOT1_TUNABLES, SI_ORDER_MIDDLE, \ + tunable_long_init, &__tunable_long_ ## line) + #define TUNABLE_LONG_FETCH(path, var) kgetenv_long((path), (var)) /* Backwards compatibility with the old deprecated TUNABLE_INT_DECL API */