diff options
| author | Kelly Yancey <kbyanc@FreeBSD.org> | 2000-07-19 06:24:06 +0000 |
|---|---|---|
| committer | Kelly Yancey <kbyanc@FreeBSD.org> | 2000-07-19 06:24:06 +0000 |
| commit | 83160a94c3b5aee98b7a778f10e182514825188a (patch) | |
| tree | 269165615e1c9d2f0990d0c09d31a71413f3440b /sbin/sysctl | |
| parent | 31cc3a5c562006ac914d37f5c9572ec7a530e95b (diff) | |
Notes
Diffstat (limited to 'sbin/sysctl')
| -rw-r--r-- | sbin/sysctl/sysctl.c | 28 |
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': |
