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