diff options
author | hrs <hrs@FreeBSD.org> | 2011-06-11 21:40:37 +0000 |
---|---|---|
committer | hrs <hrs@FreeBSD.org> | 2011-06-11 21:40:37 +0000 |
commit | 3a786b5d6704edea0398f550d83a4248123ba7a7 (patch) | |
tree | 74e76da1f93894c61eb0fed877b6ee2b0d4df010 /etc/rc.subr | |
parent | f6dfb001a5514c34ffa5a8ed77eecaa347b92792 (diff) | |
download | FreeBSD-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.subr | 22 |
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}. |