diff options
author | mdf <mdf@FreeBSD.org> | 2011-01-19 23:00:25 +0000 |
---|---|---|
committer | mdf <mdf@FreeBSD.org> | 2011-01-19 23:00:25 +0000 |
commit | 6b5f615b7cc6c75f8c09d1c988fd88ffea2ac4e1 (patch) | |
tree | 018d5bd56f39f833a692fc5bf63ac3aa9faf2d3b /lib/libjail | |
parent | b9c3284acce37464aa09aa152e7b09ac335fb83e (diff) | |
download | FreeBSD-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.c | 15 |
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: |