static ssize_t store_cpuidle_profile(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { int input; if (!sscanf(buf, "%1d", &input)) return -EINVAL; if (!!input) cpuidle_profile_main_start(); else cpuidle_profile_main_finish(); return count; }
static ssize_t store_cpuidle_profile(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { int input; if (!sscanf(buf, "%1d", &input)) return -EINVAL; switch (input) { case 1: cpuidle_profile_main_start(); break; case 0: cpuidle_profile_main_finish(); break; default: pr_info("echo <1/0> > profile\n"); break; } return count; }