1e66d5b67SViresh Kumar#!/bin/bash
2e66d5b67SViresh Kumar#
3e66d5b67SViresh Kumar# CPU helpers
4e66d5b67SViresh Kumar
5e66d5b67SViresh Kumar# protect against multiple inclusion
6e66d5b67SViresh Kumarif [ $FILE_CPU ]; then
7e66d5b67SViresh Kumar	return 0
8e66d5b67SViresh Kumarelse
9e66d5b67SViresh Kumar	FILE_CPU=DONE
10e66d5b67SViresh Kumarfi
11e66d5b67SViresh Kumar
12e66d5b67SViresh Kumarsource cpufreq.sh
13e66d5b67SViresh Kumar
14e66d5b67SViresh Kumarfor_each_cpu()
15e66d5b67SViresh Kumar{
16e66d5b67SViresh Kumar	cpus=$(ls $CPUROOT | grep "cpu[0-9].*")
17e66d5b67SViresh Kumar	for cpu in $cpus; do
18e66d5b67SViresh Kumar		$@ $cpu
19e66d5b67SViresh Kumar	done
20e66d5b67SViresh Kumar}
21e66d5b67SViresh Kumar
22e66d5b67SViresh Kumarfor_each_non_boot_cpu()
23e66d5b67SViresh Kumar{
24e66d5b67SViresh Kumar	cpus=$(ls $CPUROOT | grep "cpu[1-9].*")
25e66d5b67SViresh Kumar	for cpu in $cpus; do
26e66d5b67SViresh Kumar		$@ $cpu
27e66d5b67SViresh Kumar	done
28e66d5b67SViresh Kumar}
29e66d5b67SViresh Kumar
30e66d5b67SViresh Kumar#$1: cpu
31e66d5b67SViresh Kumaroffline_cpu()
32e66d5b67SViresh Kumar{
33e66d5b67SViresh Kumar	printf "Offline $1\n"
34e66d5b67SViresh Kumar	echo 0 > $CPUROOT/$1/online
35e66d5b67SViresh Kumar}
36e66d5b67SViresh Kumar
37e66d5b67SViresh Kumar#$1: cpu
38e66d5b67SViresh Kumaronline_cpu()
39e66d5b67SViresh Kumar{
40e66d5b67SViresh Kumar	printf "Online $1\n"
41e66d5b67SViresh Kumar	echo 1 > $CPUROOT/$1/online
42e66d5b67SViresh Kumar}
43e66d5b67SViresh Kumar
44e66d5b67SViresh Kumar#$1: cpu
45e66d5b67SViresh Kumarreboot_cpu()
46e66d5b67SViresh Kumar{
47e66d5b67SViresh Kumar	offline_cpu $1
48e66d5b67SViresh Kumar	online_cpu $1
49e66d5b67SViresh Kumar}
50e66d5b67SViresh Kumar
51e66d5b67SViresh Kumar# Reboot CPUs
52e66d5b67SViresh Kumar# param: number of times we want to run the loop
53e66d5b67SViresh Kumarreboot_cpus()
54e66d5b67SViresh Kumar{
55e66d5b67SViresh Kumar	printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n"
56e66d5b67SViresh Kumar
57e66d5b67SViresh Kumar	for i in `seq 1 $1`; do
58e66d5b67SViresh Kumar		for_each_non_boot_cpu offline_cpu
59e66d5b67SViresh Kumar		for_each_non_boot_cpu online_cpu
60e66d5b67SViresh Kumar		printf "\n"
61e66d5b67SViresh Kumar	done
62e66d5b67SViresh Kumar
63e66d5b67SViresh Kumar	printf "\n%s\n\n" "------------------------------------------------"
64e66d5b67SViresh Kumar}
65e66d5b67SViresh Kumar
66e66d5b67SViresh Kumar# Prints warning for all CPUs with missing cpufreq directory
67e66d5b67SViresh Kumarprint_unmanaged_cpus()
68e66d5b67SViresh Kumar{
69e66d5b67SViresh Kumar	for_each_cpu cpu_should_have_cpufreq_directory
70e66d5b67SViresh Kumar}
71e66d5b67SViresh Kumar
72e66d5b67SViresh Kumar# Counts CPUs with cpufreq directories
73e66d5b67SViresh Kumarcount_cpufreq_managed_cpus()
74e66d5b67SViresh Kumar{
75e66d5b67SViresh Kumar	count=0;
76e66d5b67SViresh Kumar
77e66d5b67SViresh Kumar	for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do
78e66d5b67SViresh Kumar		if [ -d $CPUROOT/$cpu/cpufreq ]; then
79e66d5b67SViresh Kumar			let count=count+1;
80e66d5b67SViresh Kumar		fi
81e66d5b67SViresh Kumar	done
82e66d5b67SViresh Kumar
83e66d5b67SViresh Kumar	echo $count;
84e66d5b67SViresh Kumar}
85