Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : #ifndef _LINUX_SCHED_CPUFREQ_H 3 : : #define _LINUX_SCHED_CPUFREQ_H 4 : : 5 : : #include <linux/types.h> 6 : : 7 : : /* 8 : : * Interface between cpufreq drivers and the scheduler: 9 : : */ 10 : : 11 : : #define SCHED_CPUFREQ_IOWAIT (1U << 0) 12 : : #define SCHED_CPUFREQ_MIGRATION (1U << 1) 13 : : 14 : : #ifdef CONFIG_CPU_FREQ 15 : : struct cpufreq_policy; 16 : : 17 : : struct update_util_data { 18 : : void (*func)(struct update_util_data *data, u64 time, unsigned int flags); 19 : : }; 20 : : 21 : : void cpufreq_add_update_util_hook(int cpu, struct update_util_data *data, 22 : : void (*func)(struct update_util_data *data, u64 time, 23 : : unsigned int flags)); 24 : : void cpufreq_remove_update_util_hook(int cpu); 25 : : bool cpufreq_this_cpu_can_update(struct cpufreq_policy *policy); 26 : : 27 : : static inline unsigned long map_util_freq(unsigned long util, 28 : : unsigned long freq, unsigned long cap) 29 : : { 30 : 0 : return (freq + (freq >> 2)) * util / cap; 31 : : } 32 : : #endif /* CONFIG_CPU_FREQ */ 33 : : 34 : : #endif /* _LINUX_SCHED_CPUFREQ_H */