diff options
author | Stanislav Sedov <stas@FreeBSD.org> | 2009-08-17 01:23:58 +0800 |
---|---|---|
committer | Stanislav Sedov <stas@FreeBSD.org> | 2009-08-17 01:23:58 +0800 |
commit | 6a19b1b8d85df9566dc77ca2c46b2b9baab1475a (patch) | |
tree | 1012c433a8c6ad6a94180171c116b3f727bfca75 /sysutils/devcpu-data | |
parent | 75f87d4846d974b7fbe24d1204affdd83303ba27 (diff) | |
download | freebsd-ports-gnome-6a19b1b8d85df9566dc77ca2c46b2b9baab1475a.tar.gz freebsd-ports-gnome-6a19b1b8d85df9566dc77ca2c46b2b9baab1475a.tar.zst freebsd-ports-gnome-6a19b1b8d85df9566dc77ca2c46b2b9baab1475a.zip |
- Add forgotten rcNG file.
Diffstat (limited to 'sysutils/devcpu-data')
-rw-r--r-- | sysutils/devcpu-data/files/microcode_update.in | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/sysutils/devcpu-data/files/microcode_update.in b/sysutils/devcpu-data/files/microcode_update.in new file mode 100644 index 000000000000..80b02d302cf1 --- /dev/null +++ b/sysutils/devcpu-data/files/microcode_update.in @@ -0,0 +1,64 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: microcode_update +# REQUIRE: root mountcritlocal +# KEYWORD: nojail + +# +# Add the following line to /etc/rc.conf to enable flow-capture: +# microcode_update_enable (bool): Set it to "YES" to update microcode on startup +# Set to "NO" by default. +# microcode_update_datadir (str): Directory, microcode updates stored in. +# Default is "%%DATADIR%%" +# microcode_update_cpus (str): A list of cpus to update on startup, or "ALL" for all. +# Example: microcode_update_cpus_cpus="0 CPU0" +# Set to "ALL" by default. + +. /etc/rc.subr + +name="microcode_update" +rcvar=`set_rcvar` +stop_cmd=":" +start_precmd="microcode_update_prepare" +start_cmd="microcode_update_start" +requires_modules="cpuctl" + +CMT="/usr/sbin/cpucontrol" + +microcode_update_prepare() +{ + if ! kldstat -q -m cpuctl; then + if ! kldload cpuctl > /dev/null 2>&1; then + warn "Can't load cpuctl module." + return 1 + fi + fi +} + +microcode_update_start() +{ + echo "Updating cpucodes..." + if [ "${microcode_cpus}" = "ALL" ]; then + ncpu=`/sbin/sysctl -n hw.ncpu` + cpus=`jot ${ncpu} 0`; + else + cpus=${microcode_cpus} + fi + for i in ${cpus}; do + ${CMT} -u -d "${microcode_update_datadir}" /dev/cpuctl${i} || \ + (echo "Failed." && exit 1) + done + echo "Done." +} + +load_rc_config $name + +# Set default values +: ${microcode_update_enable="NO"} +: ${microcode_update_datadir="%%DATADIR%%"} +: ${microcode_cpus="ALL"} + +run_rc_command "$1" |