linux/drivers/cpuidle/cpuidle.h
<<
>>
Prefs
   1/*
   2 * cpuidle.h - The internal header file
   3 */
   4
   5#ifndef __DRIVER_CPUIDLE_H
   6#define __DRIVER_CPUIDLE_H
   7
   8/* For internal use only */
   9extern struct cpuidle_governor *cpuidle_curr_governor;
  10extern struct list_head cpuidle_governors;
  11extern struct list_head cpuidle_detected_devices;
  12extern struct mutex cpuidle_lock;
  13extern spinlock_t cpuidle_driver_lock;
  14extern int cpuidle_disabled(void);
  15extern int cpuidle_enter_state(struct cpuidle_device *dev,
  16                struct cpuidle_driver *drv, int next_state);
  17
  18/* idle loop */
  19extern void cpuidle_install_idle_handler(void);
  20extern void cpuidle_uninstall_idle_handler(void);
  21
  22/* governors */
  23extern int cpuidle_switch_governor(struct cpuidle_governor *gov);
  24
  25/* sysfs */
  26
  27struct device;
  28
  29extern int cpuidle_add_interface(struct device *dev);
  30extern void cpuidle_remove_interface(struct device *dev);
  31extern int cpuidle_add_device_sysfs(struct cpuidle_device *device);
  32extern void cpuidle_remove_device_sysfs(struct cpuidle_device *device);
  33extern int cpuidle_add_sysfs(struct cpuidle_device *dev);
  34extern void cpuidle_remove_sysfs(struct cpuidle_device *dev);
  35
  36#ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED
  37bool cpuidle_state_is_coupled(struct cpuidle_driver *drv, int state);
  38int cpuidle_coupled_state_verify(struct cpuidle_driver *drv);
  39int cpuidle_enter_state_coupled(struct cpuidle_device *dev,
  40                struct cpuidle_driver *drv, int next_state);
  41int cpuidle_coupled_register_device(struct cpuidle_device *dev);
  42void cpuidle_coupled_unregister_device(struct cpuidle_device *dev);
  43#else
  44static inline
  45bool cpuidle_state_is_coupled(struct cpuidle_driver *drv, int state)
  46{
  47        return false;
  48}
  49
  50static inline int cpuidle_coupled_state_verify(struct cpuidle_driver *drv)
  51{
  52        return 0;
  53}
  54
  55static inline int cpuidle_enter_state_coupled(struct cpuidle_device *dev,
  56                struct cpuidle_driver *drv, int next_state)
  57{
  58        return -1;
  59}
  60
  61static inline int cpuidle_coupled_register_device(struct cpuidle_device *dev)
  62{
  63        return 0;
  64}
  65
  66static inline void cpuidle_coupled_unregister_device(struct cpuidle_device *dev)
  67{
  68}
  69#endif
  70
  71#endif /* __DRIVER_CPUIDLE_H */
  72