summaryrefslogtreecommitdiffstats
path: root/etc/rc.subr
diff options
context:
space:
mode:
authorhrs <hrs@FreeBSD.org>2011-06-11 21:40:37 +0000
committerhrs <hrs@FreeBSD.org>2011-06-11 21:40:37 +0000
commit3a786b5d6704edea0398f550d83a4248123ba7a7 (patch)
tree74e76da1f93894c61eb0fed877b6ee2b0d4df010 /etc/rc.subr
parentf6dfb001a5514c34ffa5a8ed77eecaa347b92792 (diff)
downloadFreeBSD-src-3a786b5d6704edea0398f550d83a4248123ba7a7.zip
FreeBSD-src-3a786b5d6704edea0398f550d83a4248123ba7a7.tar.gz
Add a helper function to check kern.features.* sysctls.
Discussed with: dougb
Diffstat (limited to 'etc/rc.subr')
-rw-r--r--etc/rc.subr22
1 files changed, 22 insertions, 0 deletions
diff --git a/etc/rc.subr b/etc/rc.subr
index 4748e25..97d449c 100644
--- a/etc/rc.subr
+++ b/etc/rc.subr
@@ -1734,6 +1734,28 @@ check_required_after()
fi
+# check_kern_features mib
+# Return existence of kern.features.* sysctl MIB as true or
+# false. The result will be cached in $_rc_cache_kern_features_
+# namespace. "0" means the kern.features.X exists.
+
+check_kern_features()
+{
+ local _v
+
+ [ -n "$1" ] || return 1;
+ _v=`eval echo "\\$_rc_cache_kern_features_$1"`
+ [ -n "$_v" ] && return "$_v";
+
+ if ${SYSCTL_N} kern.features.$1 > /dev/null 2>&1; then
+ eval _rc_cache_kern_features_$1=0
+ return 0
+ else
+ eval _rc_cache_kern_features_$1=1
+ return 1
+ fi
+}
+
# _echoonce var msg mode
# mode=0: Echo $msg if ${$var} is empty.
# After doing echo, a string is set to ${$var}.
OpenPOWER on IntegriCloud