aboutsummaryrefslogtreecommitdiff
path: root/sbin/sysctl
diff options
context:
space:
mode:
authorKelly Yancey <kbyanc@FreeBSD.org>2000-07-19 06:24:06 +0000
committerKelly Yancey <kbyanc@FreeBSD.org>2000-07-19 06:24:06 +0000
commit83160a94c3b5aee98b7a778f10e182514825188a (patch)
tree269165615e1c9d2f0990d0c09d31a71413f3440b /sbin/sysctl
parent31cc3a5c562006ac914d37f5c9572ec7a530e95b (diff)
Notes
Diffstat (limited to 'sbin/sysctl')
-rw-r--r--sbin/sysctl/sysctl.c28
1 files changed, 24 insertions, 4 deletions
diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c
index fb7c30585945..ee7ee729ca91 100644
--- a/sbin/sysctl/sysctl.c
+++ b/sbin/sysctl/sysctl.c
@@ -270,8 +270,14 @@ T_dev_t(int l2, void *p)
dev_t *d = (dev_t *)p;
if (l2 != sizeof *d)
err(1, "T_dev_T %d != %d", l2, sizeof *d);
- printf("{ major = %d, minor = %d }",
- major(*d), minor(*d));
+ if ((int)(*d) != -1) {
+ if (minor(*d) > 255 || minor(*d) < 0)
+ printf("{ major = %d, minor = 0x%x }",
+ major(*d), minor(*d));
+ else
+ printf("{ major = %d, minor = %d }",
+ major(*d), minor(*d));
+ }
return (0);
}
@@ -392,9 +398,13 @@ show_var(int *oid, int nlen)
case 'I':
if (!nflag)
printf("%s: ", name);
+ fmt++;
val = "";
while (len >= sizeof(int)) {
- printf("%s%d", val, *(int *)p);
+ if(*fmt == 'U')
+ printf("%s%u", val, *(unsigned int *)p);
+ else
+ printf("%s%d", val, *(int *)p);
val = " ";
len -= sizeof (int);
p += sizeof (int);
@@ -404,7 +414,17 @@ show_var(int *oid, int nlen)
case 'L':
if (!nflag)
printf("%s: ", name);
- printf("%ld", *(long *)p);
+ fmt++;
+ val = "";
+ while (len >= sizeof(long)) {
+ if(*fmt == 'U')
+ printf("%s%lu", val, *(unsigned long *)p);
+ else
+ printf("%s%ld", val, *(long *)p);
+ val = " ";
+ len -= sizeof (int);
+ p += sizeof (int);
+ }
return (0);
case 'P':