| #!/bin/bash | 
 | # SPDX-License-Identifier: GPL-2.0 | 
 | # | 
 | # CPU helpers | 
 |  | 
 | # protect against multiple inclusion | 
 | if [ $FILE_CPU ]; then | 
 | 	return 0 | 
 | else | 
 | 	FILE_CPU=DONE | 
 | fi | 
 |  | 
 | source cpufreq.sh | 
 |  | 
 | for_each_cpu() | 
 | { | 
 | 	cpus=$(ls $CPUROOT | grep "cpu[0-9].*") | 
 | 	for cpu in $cpus; do | 
 | 		$@ $cpu | 
 | 	done | 
 | } | 
 |  | 
 | for_each_non_boot_cpu() | 
 | { | 
 | 	cpus=$(ls $CPUROOT | grep "cpu[1-9].*") | 
 | 	for cpu in $cpus; do | 
 | 		$@ $cpu | 
 | 	done | 
 | } | 
 |  | 
 | #$1: cpu | 
 | offline_cpu() | 
 | { | 
 | 	printf "Offline $1\n" | 
 | 	echo 0 > $CPUROOT/$1/online | 
 | } | 
 |  | 
 | #$1: cpu | 
 | online_cpu() | 
 | { | 
 | 	printf "Online $1\n" | 
 | 	echo 1 > $CPUROOT/$1/online | 
 | } | 
 |  | 
 | #$1: cpu | 
 | reboot_cpu() | 
 | { | 
 | 	offline_cpu $1 | 
 | 	online_cpu $1 | 
 | } | 
 |  | 
 | # Reboot CPUs | 
 | # param: number of times we want to run the loop | 
 | reboot_cpus() | 
 | { | 
 | 	printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n" | 
 |  | 
 | 	for i in `seq 1 $1`; do | 
 | 		for_each_non_boot_cpu offline_cpu | 
 | 		for_each_non_boot_cpu online_cpu | 
 | 		printf "\n" | 
 | 	done | 
 |  | 
 | 	printf "\n%s\n\n" "------------------------------------------------" | 
 | } | 
 |  | 
 | # Prints warning for all CPUs with missing cpufreq directory | 
 | print_unmanaged_cpus() | 
 | { | 
 | 	for_each_cpu cpu_should_have_cpufreq_directory | 
 | } | 
 |  | 
 | # Counts CPUs with cpufreq directories | 
 | count_cpufreq_managed_cpus() | 
 | { | 
 | 	count=0; | 
 |  | 
 | 	for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do | 
 | 		if [ -d $CPUROOT/$cpu/cpufreq ]; then | 
 | 			let count=count+1; | 
 | 		fi | 
 | 	done | 
 |  | 
 | 	echo $count; | 
 | } |