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