forked from len0rd/rockbox
*frequency_linux(): factorize
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31555 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
d07c1d57a4
commit
925dacf96d
3 changed files with 16 additions and 28 deletions
|
|
@ -285,8 +285,8 @@ static const char* get_cpuinfo(int selected_item, void *data,
|
||||||
{
|
{
|
||||||
int cpu = (selected_item - 5) / (state_count + 1);
|
int cpu = (selected_item - 5) / (state_count + 1);
|
||||||
int cpu_line = (selected_item - 5) % (state_count + 1);
|
int cpu_line = (selected_item - 5) % (state_count + 1);
|
||||||
int freq1 = cpufrequency_linux(cpu);
|
int freq1 = frequency_linux(cpu, false);
|
||||||
int freq2 = scalingfrequency_linux(cpu);
|
int freq2 = frequency_linux(cpu, true);
|
||||||
if (cpu_line == 0)
|
if (cpu_line == 0)
|
||||||
{
|
{
|
||||||
sprintf(buffer, " CPU%d: Cur/Scal freq: %d/%d MHz", cpu,
|
sprintf(buffer, " CPU%d: Cur/Scal freq: %d/%d MHz", cpu,
|
||||||
|
|
|
||||||
|
|
@ -137,27 +137,14 @@ int cpucount_linux(void)
|
||||||
return get_nprocs();
|
return get_nprocs();
|
||||||
}
|
}
|
||||||
|
|
||||||
int cpufrequency_linux(int cpu)
|
int frequency_linux(int cpu, bool scaling)
|
||||||
{
|
{
|
||||||
char path[64];
|
char path[64];
|
||||||
char temp[10];
|
char temp[10];
|
||||||
int cpu_dev, ret = -1;
|
int cpu_dev, ret = -1;
|
||||||
snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%d/cpufreq/cpuinfo_cur_freq", cpu);
|
snprintf(path, sizeof(path),
|
||||||
cpu_dev = open(path, O_RDONLY);
|
"/sys/devices/system/cpu/cpu%d/cpufreq/%s_cur_freq",
|
||||||
if (cpu_dev < 0)
|
cpu, scaling ? "scaling" : "cpuinfo");
|
||||||
return -1;
|
|
||||||
if (read(cpu_dev, temp, sizeof(temp)) >= 0)
|
|
||||||
ret = atoi(temp);
|
|
||||||
close(cpu_dev);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
int scalingfrequency_linux(int cpu)
|
|
||||||
{
|
|
||||||
char path[64];
|
|
||||||
char temp[10];
|
|
||||||
int cpu_dev, ret = -1;
|
|
||||||
snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq", cpu);
|
|
||||||
cpu_dev = open(path, O_RDONLY);
|
cpu_dev = open(path, O_RDONLY);
|
||||||
if (cpu_dev < 0)
|
if (cpu_dev < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@
|
||||||
#ifndef __CPUINFO_LINUX_H__
|
#ifndef __CPUINFO_LINUX_H__
|
||||||
#define __CPUINFO_LINUX_H__
|
#define __CPUINFO_LINUX_H__
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
struct cpuusage {
|
struct cpuusage {
|
||||||
long usage; /* in hundredth percent */
|
long usage; /* in hundredth percent */
|
||||||
long utime; /* in clock ticks */
|
long utime; /* in clock ticks */
|
||||||
|
|
@ -37,8 +39,7 @@ struct time_state {
|
||||||
};
|
};
|
||||||
|
|
||||||
int cpuusage_linux(struct cpuusage* u);
|
int cpuusage_linux(struct cpuusage* u);
|
||||||
int cpufrequency_linux(int cpu);
|
int frequency_linux(int cpu, bool scaling);
|
||||||
int scalingfrequency_linux(int cpu);
|
|
||||||
int cpustatetimes_linux(int cpu, struct time_state* data, int max_elements);
|
int cpustatetimes_linux(int cpu, struct time_state* data, int max_elements);
|
||||||
int cpucount_linux(void);
|
int cpucount_linux(void);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue