#include <linux/kernel.h>
#include <linux/cpuidle.h>
#include <linux/completion.h>
#include <linux/capability.h>
#include <linux/device.h>
#include <linux/kobject.h>
static unsigned int sysfs_switch;
static int __init cpuidle_sysfs_setup(char *unused)
__setup("cpuidle_sysfs_switch", cpuidle_sysfs_setup);
static ssize_t show_available_governors(struct device *dev,
struct device_attribute *attr,
struct cpuidle_governor *tmp;
mutex_lock(&cpuidle_lock);
list_for_each_entry(tmp, &cpuidle_governors, governor_list) {
if (i >= (ssize_t) ((PAGE_SIZE/sizeof(char)) -
i += scnprintf(&buf[i], CPUIDLE_NAME_LEN, "%s ", tmp->name);
i+= sprintf(&buf[i], "\n");
mutex_unlock(&cpuidle_lock);
static ssize_t show_current_driver(struct device *dev,
struct device_attribute *attr,
struct cpuidle_driver *drv;
spin_lock(&cpuidle_driver_lock);
drv = cpuidle_get_driver();
ret = sprintf(buf, "%s\n", drv->name);
ret = sprintf(buf, "none\n");
spin_unlock(&cpuidle_driver_lock);