#!/bin/sh
#
#    turn_off_cpus: This script turns off all the CPU's available, except
#    for CPU 0.
#
#    Copyright (C) 2010 Canonical Ltd.
#
#    Authors: Andres Rodriguez <andreserl@ubuntu.com>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, version 3 of the License.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

set_cpu_online() {
	for cpu in /sys/devices/system/cpu/cpu*/online; do
		[ -w "$cpu" ] || continue
		echo $1 > $cpu
	done
}

help() {
	echo "Turns off all the CPU's (cores) available but CPU0."
}

case $1 in
	true)
		# Disable CPU
		set_cpu_online 0 ;;
	false)
		# Enable CPU
		set_cpu_online 1 ;;
	help)
		help;;
	*)
		exit $NA ;;
esac
