summaryrefslogtreecommitdiffstats
path: root/sbin/sysctl
diff options
context:
space:
mode:
authorpirzyk <pirzyk@FreeBSD.org>2001-06-18 21:06:24 +0000
committerpirzyk <pirzyk@FreeBSD.org>2001-06-18 21:06:24 +0000
commit976a20fbb609b4ec96df216a63b4c6f242bb7d5f (patch)
tree2c68fb695620fc4d0f4bd3a9dabe0994dce000b2 /sbin/sysctl
parent261a8db1801796be2b47e9381933e2fde980b6dc (diff)
downloadFreeBSD-src-976a20fbb609b4ec96df216a63b4c6f242bb7d5f.zip
FreeBSD-src-976a20fbb609b4ec96df216a63b4c6f242bb7d5f.tar.gz
modfied sysctl command to allow setting values > 2GB if the mib supports it.
PR: kern/21132 Reviewed by: no objections to by -arch MFC after: 1 month
Diffstat (limited to 'sbin/sysctl')
-rw-r--r--sbin/sysctl/sysctl.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c
index 7043582..1d22550 100644
--- a/sbin/sysctl/sysctl.c
+++ b/sbin/sysctl/sysctl.c
@@ -143,7 +143,11 @@ parse(char *string)
{
int len, i, j;
void *newval = 0;
- int intval, newsize = 0;
+ int intval;
+ unsigned int uintval;
+ long longval;
+ unsigned long ulongval;
+ size_t newsize = 0;
quad_t quadval;
int mib[CTL_MAXNAME];
char *cp, *bufp, buf[BUFSIZ];
@@ -188,6 +192,20 @@ parse(char *string)
newval = &intval;
newsize = sizeof(intval);
break;
+ case CTLTYPE_UINT:
+ uintval = (int) strtoul(newval, NULL, 0);
+ newval = &uintval;
+ newsize = sizeof uintval;
+ break;
+ case CTLTYPE_LONG:
+ longval = strtol(newval, NULL, 0);
+ newval = &longval;
+ newsize = sizeof longval;
+ break;
+ case CTLTYPE_ULONG:
+ ulongval = strtoul(newval, NULL, 0);
+ newval = &ulongval;
+ newsize = sizeof ulongval;
break;
case CTLTYPE_STRING:
break;
OpenPOWER on IntegriCloud