summaryrefslogtreecommitdiffstats
path: root/lib/libjail
diff options
context:
space:
mode:
authormdf <mdf@FreeBSD.org>2011-01-19 23:00:25 +0000
committermdf <mdf@FreeBSD.org>2011-01-19 23:00:25 +0000
commit6b5f615b7cc6c75f8c09d1c988fd88ffea2ac4e1 (patch)
tree018d5bd56f39f833a692fc5bf63ac3aa9faf2d3b /lib/libjail
parentb9c3284acce37464aa09aa152e7b09ac335fb83e (diff)
downloadFreeBSD-src-6b5f615b7cc6c75f8c09d1c988fd88ffea2ac4e1.zip
FreeBSD-src-6b5f615b7cc6c75f8c09d1c988fd88ffea2ac4e1.tar.gz
Introduce signed and unsigned version of CTLTYPE_QUAD, renaming
existing uses. Rename sysctl_handle_quad() to sysctl_handle_64().
Diffstat (limited to 'lib/libjail')
-rw-r--r--lib/libjail/jail.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/libjail/jail.c b/lib/libjail/jail.c
index 99bd970..69386e5 100644
--- a/lib/libjail/jail.c
+++ b/lib/libjail/jail.c
@@ -381,10 +381,14 @@ jailparam_import(struct jailparam *jp, const char *value)
((unsigned long *)jp->jp_value)[i] =
strtoul(avalue, &ep, 10);
goto integer_test;
- case CTLTYPE_QUAD:
+ case CTLTYPE_S64:
((int64_t *)jp->jp_value)[i] =
strtoimax(avalue, &ep, 10);
goto integer_test;
+ case CTLTYPE_U64:
+ ((uint64_t *)jp->jp_value)[i] =
+ strtoumax(avalue, &ep, 10);
+ goto integer_test;
case CTLTYPE_STRUCT:
tvalue = alloca(fw + 1);
strlcpy(tvalue, avalue, fw + 1);
@@ -768,10 +772,14 @@ jailparam_export(struct jailparam *jp)
snprintf(valbuf, sizeof(valbuf), "%lu",
((unsigned long *)jp->jp_value)[i]);
break;
- case CTLTYPE_QUAD:
+ case CTLTYPE_S64:
snprintf(valbuf, sizeof(valbuf), "%jd",
(intmax_t)((int64_t *)jp->jp_value)[i]);
break;
+ case CTLTYPE_U64:
+ snprintf(valbuf, sizeof(valbuf), "%ju",
+ (uintmax_t)((uint64_t *)jp->jp_value)[i]);
+ break;
case CTLTYPE_STRUCT:
switch (jp->jp_structtype) {
case JPS_IN_ADDR:
@@ -941,7 +949,8 @@ jailparam_type(struct jailparam *jp)
case CTLTYPE_ULONG:
jp->jp_valuelen = sizeof(long);
break;
- case CTLTYPE_QUAD:
+ case CTLTYPE_S64:
+ case CTLTYPE_U64:
jp->jp_valuelen = sizeof(int64_t);
break;
case CTLTYPE_STRING:
OpenPOWER on IntegriCloud