aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_environment.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2004-10-31 15:50:33 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2004-10-31 15:50:33 +0000
commitb0e1e474f7298863eaac6955216829754a38f714 (patch)
tree28e07b26ade58685bdf19420484440063653d800 /sys/kern/kern_environment.c
parent38228f7221e4dde43a8a54597f03a2078fcec99c (diff)
downloadsrc-b0e1e474f7298863eaac6955216829754a38f714.tar.gz
src-b0e1e474f7298863eaac6955216829754a38f714.zip
Add TUNABLE_LONG and TUNABLE_ULONG, and use the latter for the
hw.pci.host_mem_start tunable. Add comments to TUNABLE_INT and TUNABLE_QUAD recommending against their use. MFC after: 3 weeks
Notes
Notes: svn path=/head/; revision=137099
Diffstat (limited to 'sys/kern/kern_environment.c')
-rw-r--r--sys/kern/kern_environment.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c
index 96b57d9170d5..7f88adca6e66 100644
--- a/sys/kern/kern_environment.c
+++ b/sys/kern/kern_environment.c
@@ -415,6 +415,36 @@ getenv_int(const char *name, int *data)
}
/*
+ * Return a long value from an environment variable.
+ */
+long
+getenv_long(const char *name, long *data)
+{
+ quad_t tmp;
+ long rval;
+
+ rval = getenv_quad(name, &tmp);
+ if (rval)
+ *data = (long) tmp;
+ return (rval);
+}
+
+/*
+ * Return an unsigned long value from an environment variable.
+ */
+unsigned long
+getenv_ulong(const char *name, unsigned long *data)
+{
+ quad_t tmp;
+ long rval;
+
+ rval = getenv_quad(name, &tmp);
+ if (rval)
+ *data = (unsigned long) tmp;
+ return (rval);
+}
+
+/*
* Return a quad_t value from an environment variable.
*/
int
@@ -464,6 +494,22 @@ tunable_int_init(void *data)
}
void
+tunable_long_init(void *data)
+{
+ struct tunable_long *d = (struct tunable_long *)data;
+
+ TUNABLE_LONG_FETCH(d->path, d->var);
+}
+
+void
+tunable_ulong_init(void *data)
+{
+ struct tunable_ulong *d = (struct tunable_ulong *)data;
+
+ TUNABLE_ULONG_FETCH(d->path, d->var);
+}
+
+void
tunable_quad_init(void *data)
{
struct tunable_quad *d = (struct tunable_quad *)data;