14f86d3a8SLen Brown /* 24f86d3a8SLen Brown * cpuidle.h - The internal header file 34f86d3a8SLen Brown */ 44f86d3a8SLen Brown 54f86d3a8SLen Brown #ifndef __DRIVER_CPUIDLE_H 64f86d3a8SLen Brown #define __DRIVER_CPUIDLE_H 74f86d3a8SLen Brown 84f86d3a8SLen Brown #include <linux/sysdev.h> 94f86d3a8SLen Brown 104f86d3a8SLen Brown /* For internal use only */ 114f86d3a8SLen Brown extern struct cpuidle_governor *cpuidle_curr_governor; 124f86d3a8SLen Brown extern struct list_head cpuidle_governors; 134f86d3a8SLen Brown extern struct list_head cpuidle_detected_devices; 144f86d3a8SLen Brown extern struct mutex cpuidle_lock; 154f86d3a8SLen Brown extern spinlock_t cpuidle_driver_lock; 16*62027aeaSLen Brown extern int cpuidle_disabled(void); 174f86d3a8SLen Brown 184f86d3a8SLen Brown /* idle loop */ 194f86d3a8SLen Brown extern void cpuidle_install_idle_handler(void); 204f86d3a8SLen Brown extern void cpuidle_uninstall_idle_handler(void); 214f86d3a8SLen Brown 224f86d3a8SLen Brown /* governors */ 234f86d3a8SLen Brown extern int cpuidle_switch_governor(struct cpuidle_governor *gov); 244f86d3a8SLen Brown 254f86d3a8SLen Brown /* sysfs */ 264f86d3a8SLen Brown extern int cpuidle_add_class_sysfs(struct sysdev_class *cls); 274f86d3a8SLen Brown extern void cpuidle_remove_class_sysfs(struct sysdev_class *cls); 284f86d3a8SLen Brown extern int cpuidle_add_state_sysfs(struct cpuidle_device *device); 294f86d3a8SLen Brown extern void cpuidle_remove_state_sysfs(struct cpuidle_device *device); 304f86d3a8SLen Brown extern int cpuidle_add_sysfs(struct sys_device *sysdev); 314f86d3a8SLen Brown extern void cpuidle_remove_sysfs(struct sys_device *sysdev); 324f86d3a8SLen Brown 334f86d3a8SLen Brown #endif /* __DRIVER_CPUIDLE_H */ 34