Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 261779
b: refs/heads/master
c: 6c2b818
h: refs/heads/master
i:
  261777: 4f3ff1e
  261775: 158b97b
v: v3
  • Loading branch information
Dominik Brodowski committed Jul 29, 2011
1 parent 7faffca commit 5e008c2
Show file tree
Hide file tree
Showing 5 changed files with 210 additions and 173 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 02af3cb5aac13d8ef7edb7876260564b7d42ad2b
refs/heads/master: 6c2b8185517fea46bdb1e4e70c7005901fcc89ab
72 changes: 45 additions & 27 deletions trunk/tools/power/cpupower/lib/cpufreq.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,25 @@ int cpufreq_get_hardware_limits(unsigned int cpu,
return sysfs_get_freq_hardware_limits(cpu, min, max);
}

char * cpufreq_get_driver(unsigned int cpu) {
char *cpufreq_get_driver(unsigned int cpu)
{
return sysfs_get_freq_driver(cpu);
}

void cpufreq_put_driver(char * ptr) {
void cpufreq_put_driver(char *ptr)
{
if (!ptr)
return;
free(ptr);
}

struct cpufreq_policy * cpufreq_get_policy(unsigned int cpu) {
struct cpufreq_policy *cpufreq_get_policy(unsigned int cpu)
{
return sysfs_get_freq_policy(cpu);
}

void cpufreq_put_policy(struct cpufreq_policy *policy) {
void cpufreq_put_policy(struct cpufreq_policy *policy)
{
if ((!policy) || (!policy->governor))
return;

Expand All @@ -65,11 +69,14 @@ void cpufreq_put_policy(struct cpufreq_policy *policy) {
free(policy);
}

struct cpufreq_available_governors * cpufreq_get_available_governors(unsigned int cpu) {
struct cpufreq_available_governors *cpufreq_get_available_governors(unsigned
int cpu)
{
return sysfs_get_freq_available_governors(cpu);
}

void cpufreq_put_available_governors(struct cpufreq_available_governors *any) {
void cpufreq_put_available_governors(struct cpufreq_available_governors *any)
{
struct cpufreq_available_governors *tmp, *next;

if (!any)
Expand All @@ -86,11 +93,14 @@ void cpufreq_put_available_governors(struct cpufreq_available_governors *any) {
}


struct cpufreq_available_frequencies * cpufreq_get_available_frequencies(unsigned int cpu) {
struct cpufreq_available_frequencies
*cpufreq_get_available_frequencies(unsigned int cpu)
{
return sysfs_get_available_frequencies(cpu);
}

void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies *any) {
void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies
*any) {
struct cpufreq_available_frequencies *tmp, *next;

if (!any)
Expand All @@ -105,11 +115,13 @@ void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies *any
}


struct cpufreq_affected_cpus * cpufreq_get_affected_cpus(unsigned int cpu) {
struct cpufreq_affected_cpus *cpufreq_get_affected_cpus(unsigned int cpu)
{
return sysfs_get_freq_affected_cpus(cpu);
}

void cpufreq_put_affected_cpus(struct cpufreq_affected_cpus *any) {
void cpufreq_put_affected_cpus(struct cpufreq_affected_cpus *any)
{
struct cpufreq_affected_cpus *tmp, *next;

if (!any)
Expand All @@ -124,52 +136,59 @@ void cpufreq_put_affected_cpus(struct cpufreq_affected_cpus *any) {
}


struct cpufreq_affected_cpus * cpufreq_get_related_cpus(unsigned int cpu) {
struct cpufreq_affected_cpus *cpufreq_get_related_cpus(unsigned int cpu)
{
return sysfs_get_freq_related_cpus(cpu);
}

void cpufreq_put_related_cpus(struct cpufreq_affected_cpus *any) {
void cpufreq_put_related_cpus(struct cpufreq_affected_cpus *any)
{
cpufreq_put_affected_cpus(any);
}


int cpufreq_set_policy(unsigned int cpu, struct cpufreq_policy *policy) {
int cpufreq_set_policy(unsigned int cpu, struct cpufreq_policy *policy)
{
if (!policy || !(policy->governor))
return -EINVAL;

return sysfs_set_freq_policy(cpu, policy);
}


int cpufreq_modify_policy_min(unsigned int cpu, unsigned long min_freq) {
int cpufreq_modify_policy_min(unsigned int cpu, unsigned long min_freq)
{
return sysfs_modify_freq_policy_min(cpu, min_freq);
}


int cpufreq_modify_policy_max(unsigned int cpu, unsigned long max_freq) {
int cpufreq_modify_policy_max(unsigned int cpu, unsigned long max_freq)
{
return sysfs_modify_freq_policy_max(cpu, max_freq);
}


int cpufreq_modify_policy_governor(unsigned int cpu, char *governor) {
int cpufreq_modify_policy_governor(unsigned int cpu, char *governor)
{
if ((!governor) || (strlen(governor) > 19))
return -EINVAL;

return sysfs_modify_freq_policy_governor(cpu, governor);
}

int cpufreq_set_frequency(unsigned int cpu, unsigned long target_frequency) {
int cpufreq_set_frequency(unsigned int cpu, unsigned long target_frequency)
{
return sysfs_set_frequency(cpu, target_frequency);
}

struct cpufreq_stats * cpufreq_get_stats(unsigned int cpu, unsigned long long *total_time) {
struct cpufreq_stats *ret;

ret = sysfs_get_freq_stats(cpu, total_time);
return (ret);
struct cpufreq_stats *cpufreq_get_stats(unsigned int cpu,
unsigned long long *total_time)
{
return sysfs_get_freq_stats(cpu, total_time);
}

void cpufreq_put_stats(struct cpufreq_stats *any) {
void cpufreq_put_stats(struct cpufreq_stats *any)
{
struct cpufreq_stats *tmp, *next;

if (!any)
Expand All @@ -183,8 +202,7 @@ void cpufreq_put_stats(struct cpufreq_stats *any) {
}
}

unsigned long cpufreq_get_transitions(unsigned int cpu) {
unsigned long ret = sysfs_get_freq_transitions(cpu);

return (ret);
unsigned long cpufreq_get_transitions(unsigned int cpu)
{
return sysfs_get_freq_transitions(cpu);
}
54 changes: 31 additions & 23 deletions trunk/tools/power/cpupower/lib/cpufreq.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,9 @@ extern unsigned long cpufreq_get_transition_latency(unsigned int cpu);
* considerations by cpufreq policy notifiers in the kernel.
*/

extern int cpufreq_get_hardware_limits(unsigned int cpu,
unsigned long *min,
unsigned long *max);
extern int cpufreq_get_hardware_limits(unsigned int cpu,
unsigned long *min,
unsigned long *max);


/* determine CPUfreq driver used
Expand All @@ -104,9 +104,9 @@ extern int cpufreq_get_hardware_limits(unsigned int cpu,
* to avoid memory leakage, please.
*/

extern char * cpufreq_get_driver(unsigned int cpu);
extern char *cpufreq_get_driver(unsigned int cpu);

extern void cpufreq_put_driver(char * ptr);
extern void cpufreq_put_driver(char *ptr);


/* determine CPUfreq policy currently used
Expand All @@ -116,7 +116,7 @@ extern void cpufreq_put_driver(char * ptr);
*/


extern struct cpufreq_policy * cpufreq_get_policy(unsigned int cpu);
extern struct cpufreq_policy *cpufreq_get_policy(unsigned int cpu);

extern void cpufreq_put_policy(struct cpufreq_policy *policy);

Expand All @@ -129,41 +129,47 @@ extern void cpufreq_put_policy(struct cpufreq_policy *policy);
*/


extern struct cpufreq_available_governors * cpufreq_get_available_governors(unsigned int cpu);
extern struct cpufreq_available_governors
*cpufreq_get_available_governors(unsigned int cpu);

extern void cpufreq_put_available_governors(struct cpufreq_available_governors *first);
extern void cpufreq_put_available_governors(
struct cpufreq_available_governors *first);


/* determine CPU frequency states available
*
* only present on _some_ ->target() cpufreq drivers. For information purposes
* only. Please free allocated memory by calling cpufreq_put_available_frequencies
* after use.
* Only present on _some_ ->target() cpufreq drivers. For information purposes
* only. Please free allocated memory by calling
* cpufreq_put_available_frequencies after use.
*/

extern struct cpufreq_available_frequencies * cpufreq_get_available_frequencies(unsigned int cpu);
extern struct cpufreq_available_frequencies
*cpufreq_get_available_frequencies(unsigned int cpu);

extern void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies *first);
extern void cpufreq_put_available_frequencies(
struct cpufreq_available_frequencies *first);


/* determine affected CPUs
/* determine affected CPUs
*
* Remember to call cpufreq_put_affected_cpus when no longer needed
* to avoid memory leakage, please.
*/

extern struct cpufreq_affected_cpus * cpufreq_get_affected_cpus(unsigned int cpu);
extern struct cpufreq_affected_cpus *cpufreq_get_affected_cpus(unsigned
int cpu);

extern void cpufreq_put_affected_cpus(struct cpufreq_affected_cpus *first);


/* determine related CPUs
/* determine related CPUs
*
* Remember to call cpufreq_put_related_cpus when no longer needed
* to avoid memory leakage, please.
*/

extern struct cpufreq_affected_cpus * cpufreq_get_related_cpus(unsigned int cpu);
extern struct cpufreq_affected_cpus *cpufreq_get_related_cpus(unsigned
int cpu);

extern void cpufreq_put_related_cpus(struct cpufreq_affected_cpus *first);

Expand All @@ -173,23 +179,24 @@ extern void cpufreq_put_related_cpus(struct cpufreq_affected_cpus *first);
* This is not available in all kernel versions or configurations.
*/

extern struct cpufreq_stats * cpufreq_get_stats(unsigned int cpu, unsigned long long *total_time);
extern struct cpufreq_stats *cpufreq_get_stats(unsigned int cpu,
unsigned long long *total_time);

extern void cpufreq_put_stats(struct cpufreq_stats *stats);

extern unsigned long cpufreq_get_transitions(unsigned int cpu);


/* set new cpufreq policy
*
/* set new cpufreq policy
*
* Tries to set the passed policy as new policy as close as possible,
* but results may differ depending e.g. on governors being available.
*/

extern int cpufreq_set_policy(unsigned int cpu, struct cpufreq_policy *policy);


/* modify a policy by only changing min/max freq or governor
/* modify a policy by only changing min/max freq or governor
*
* Does not check whether result is what was intended.
*/
Expand All @@ -202,11 +209,12 @@ extern int cpufreq_modify_policy_governor(unsigned int cpu, char *governor);
/* set a specific frequency
*
* Does only work if userspace governor can be used and no external
* interference (other calls to this function or to set/modify_policy)
* interference (other calls to this function or to set/modify_policy)
* occurs. Also does not work on ->range() cpufreq drivers.
*/

extern int cpufreq_set_frequency(unsigned int cpu, unsigned long target_frequency);
extern int cpufreq_set_frequency(unsigned int cpu,
unsigned long target_frequency);

#ifdef __cplusplus
}
Expand Down
Loading

0 comments on commit 5e008c2

Please sign in to comment.