xref: /openbmc/linux/drivers/cpuidle/cpuidle.h (revision 4f86d3a8e297205780cca027e974fd5f81064780)
1*4f86d3a8SLen Brown /*
2*4f86d3a8SLen Brown  * cpuidle.h - The internal header file
3*4f86d3a8SLen Brown  */
4*4f86d3a8SLen Brown 
5*4f86d3a8SLen Brown #ifndef __DRIVER_CPUIDLE_H
6*4f86d3a8SLen Brown #define __DRIVER_CPUIDLE_H
7*4f86d3a8SLen Brown 
8*4f86d3a8SLen Brown #include <linux/sysdev.h>
9*4f86d3a8SLen Brown 
10*4f86d3a8SLen Brown /* For internal use only */
11*4f86d3a8SLen Brown extern struct cpuidle_governor *cpuidle_curr_governor;
12*4f86d3a8SLen Brown extern struct cpuidle_driver *cpuidle_curr_driver;
13*4f86d3a8SLen Brown extern struct list_head cpuidle_governors;
14*4f86d3a8SLen Brown extern struct list_head cpuidle_detected_devices;
15*4f86d3a8SLen Brown extern struct mutex cpuidle_lock;
16*4f86d3a8SLen Brown extern spinlock_t cpuidle_driver_lock;
17*4f86d3a8SLen Brown 
18*4f86d3a8SLen Brown /* idle loop */
19*4f86d3a8SLen Brown extern void cpuidle_install_idle_handler(void);
20*4f86d3a8SLen Brown extern void cpuidle_uninstall_idle_handler(void);
21*4f86d3a8SLen Brown 
22*4f86d3a8SLen Brown /* governors */
23*4f86d3a8SLen Brown extern int cpuidle_switch_governor(struct cpuidle_governor *gov);
24*4f86d3a8SLen Brown 
25*4f86d3a8SLen Brown /* sysfs */
26*4f86d3a8SLen Brown extern int cpuidle_add_class_sysfs(struct sysdev_class *cls);
27*4f86d3a8SLen Brown extern void cpuidle_remove_class_sysfs(struct sysdev_class *cls);
28*4f86d3a8SLen Brown extern int cpuidle_add_state_sysfs(struct cpuidle_device *device);
29*4f86d3a8SLen Brown extern void cpuidle_remove_state_sysfs(struct cpuidle_device *device);
30*4f86d3a8SLen Brown extern int cpuidle_add_sysfs(struct sys_device *sysdev);
31*4f86d3a8SLen Brown extern void cpuidle_remove_sysfs(struct sys_device *sysdev);
32*4f86d3a8SLen Brown 
33*4f86d3a8SLen Brown #endif /* __DRIVER_CPUIDLE_H */
34