summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_environment.c
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2005-03-05 15:52:12 +0000
committerdes <des@FreeBSD.org>2005-03-05 15:52:12 +0000
commit92b3a60f355481e2f7f651414819beffca4f4540 (patch)
tree9dfa45d51dcf547456e84f8d222ee875b86ca14e /sys/kern/kern_environment.c
parentb061c6f5aed3662b905ede01af917af51fa3a40c (diff)
downloadFreeBSD-src-92b3a60f355481e2f7f651414819beffca4f4540.zip
FreeBSD-src-92b3a60f355481e2f7f651414819beffca4f4540.tar.gz
Teach getenv_quad() to recognize k/m/g/t suffixes in both lower- and
upper-case. This means (almost) all tunables now support those suffixes.
Diffstat (limited to 'sys/kern/kern_environment.c')
-rw-r--r--sys/kern/kern_environment.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c
index bb26b61..550be83 100644
--- a/sys/kern/kern_environment.c
+++ b/sys/kern/kern_environment.c
@@ -458,11 +458,23 @@ getenv_quad(const char *name, quad_t *data)
if (value == NULL)
return (0);
iv = strtoq(value, &vtp, 0);
- if ((vtp == value) || (*vtp != '\0')) {
- freeenv(value);
+ freeenv(value);
+ if (vtp == value || (vtp[0] != '\0' && vtp[1] != '\0'))
+ return (0);
+ switch (vtp[0]) {
+ case 't': case 'T':
+ iv *= 1024;
+ case 'g': case 'G':
+ iv *= 1024;
+ case 'm': case 'M':
+ iv *= 1024;
+ case 'k': case 'K':
+ iv *= 1024;
+ case '\0':
+ break;
+ default:
return (0);
}
- freeenv(value);
*data = iv;
return (1);
}
OpenPOWER on IntegriCloud