cpuidle.h revision 8a25a2fd126c621f44f3aeaef80d51f00fc11639
14f86d3a8e297205780cca027e974fd5f81064780Len Brown/*
24f86d3a8e297205780cca027e974fd5f81064780Len Brown * cpuidle.h - The internal header file
34f86d3a8e297205780cca027e974fd5f81064780Len Brown */
44f86d3a8e297205780cca027e974fd5f81064780Len Brown
54f86d3a8e297205780cca027e974fd5f81064780Len Brown#ifndef __DRIVER_CPUIDLE_H
64f86d3a8e297205780cca027e974fd5f81064780Len Brown#define __DRIVER_CPUIDLE_H
74f86d3a8e297205780cca027e974fd5f81064780Len Brown
88a25a2fd126c621f44f3aeaef80d51f00fc11639Kay Sievers#include <linux/device.h>
94f86d3a8e297205780cca027e974fd5f81064780Len Brown
104f86d3a8e297205780cca027e974fd5f81064780Len Brown/* For internal use only */
114f86d3a8e297205780cca027e974fd5f81064780Len Brownextern struct cpuidle_governor *cpuidle_curr_governor;
124f86d3a8e297205780cca027e974fd5f81064780Len Brownextern struct list_head cpuidle_governors;
134f86d3a8e297205780cca027e974fd5f81064780Len Brownextern struct list_head cpuidle_detected_devices;
144f86d3a8e297205780cca027e974fd5f81064780Len Brownextern struct mutex cpuidle_lock;
154f86d3a8e297205780cca027e974fd5f81064780Len Brownextern spinlock_t cpuidle_driver_lock;
1662027aea23fcd14478abdddd3b74a4e0f5fb2984Len Brownextern int cpuidle_disabled(void);
174f86d3a8e297205780cca027e974fd5f81064780Len Brown
184f86d3a8e297205780cca027e974fd5f81064780Len Brown/* idle loop */
194f86d3a8e297205780cca027e974fd5f81064780Len Brownextern void cpuidle_install_idle_handler(void);
204f86d3a8e297205780cca027e974fd5f81064780Len Brownextern void cpuidle_uninstall_idle_handler(void);
214f86d3a8e297205780cca027e974fd5f81064780Len Brown
224f86d3a8e297205780cca027e974fd5f81064780Len Brown/* governors */
234f86d3a8e297205780cca027e974fd5f81064780Len Brownextern int cpuidle_switch_governor(struct cpuidle_governor *gov);
244f86d3a8e297205780cca027e974fd5f81064780Len Brown
254f86d3a8e297205780cca027e974fd5f81064780Len Brown/* sysfs */
268a25a2fd126c621f44f3aeaef80d51f00fc11639Kay Sieversextern int cpuidle_add_interface(struct device *dev);
278a25a2fd126c621f44f3aeaef80d51f00fc11639Kay Sieversextern void cpuidle_remove_interface(struct device *dev);
284f86d3a8e297205780cca027e974fd5f81064780Len Brownextern int cpuidle_add_state_sysfs(struct cpuidle_device *device);
294f86d3a8e297205780cca027e974fd5f81064780Len Brownextern void cpuidle_remove_state_sysfs(struct cpuidle_device *device);
308a25a2fd126c621f44f3aeaef80d51f00fc11639Kay Sieversextern int cpuidle_add_sysfs(struct device *dev);
318a25a2fd126c621f44f3aeaef80d51f00fc11639Kay Sieversextern void cpuidle_remove_sysfs(struct device *dev);
324f86d3a8e297205780cca027e974fd5f81064780Len Brown
334f86d3a8e297205780cca027e974fd5f81064780Len Brown#endif /* __DRIVER_CPUIDLE_H */
34