summaryrefslogtreecommitdiffstats
path: root/usr.bin/uname/uname.c
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2003-06-09 10:23:43 +0000
committerjmallett <jmallett@FreeBSD.org>2003-06-09 10:23:43 +0000
commit000dad93ab2548fb069b3997be74991433f00e0c (patch)
tree8b1fce19da350992acb48d0493fe50c253916bab /usr.bin/uname/uname.c
parent6cf3ba132390f49a24daa302ebcecc3c1691f193 (diff)
downloadFreeBSD-src-000dad93ab2548fb069b3997be74991433f00e0c.zip
FreeBSD-src-000dad93ab2548fb069b3997be74991433f00e0c.tar.gz
Add sysctlbyname(3) support, and use that for uname -i, in preparation for
replacing the committed static OID version with a string-based OID_AUTO version.
Diffstat (limited to 'usr.bin/uname/uname.c')
-rw-r--r--usr.bin/uname/uname.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/usr.bin/uname/uname.c b/usr.bin/uname/uname.c
index b650ebf..d4642ff 100644
--- a/usr.bin/uname/uname.c
+++ b/usr.bin/uname/uname.c
@@ -191,6 +191,18 @@ native_##var(void) \
&buf, &len, NULL, 0) == -1) \
err(1, "sysctl");
+#define NATIVE_SYSCTLNAME_GET(var,name) \
+void \
+native_##var(void) \
+{ \
+ size_t len; \
+ static char buf[1024]; \
+ char **varp = &(var); \
+ \
+ if (sysctlbyname(name, &buf, &len, NULL,\
+ 0) == -1) \
+ err(1, "sysctlbyname");
+
#define NATIVE_SET \
*varp = buf; \
return; \
@@ -225,7 +237,7 @@ NATIVE_SYSCTL2_GET(platform, CTL_HW, HW_MACHINE) {
NATIVE_SYSCTL2_GET(arch, CTL_HW, HW_MACHINE_ARCH) {
} NATIVE_SET;
-NATIVE_SYSCTL2_GET(ident, CTL_KERN, KERN_IDENT) {
+NATIVE_SYSCTLNAME_GET(ident, "kern.ident") {
} NATIVE_SET;
void
OpenPOWER on IntegriCloud