1
0
Fork 0
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:
Rafaël Carré 2012-01-04 00:34:02 +00:00
parent d07c1d57a4
commit 925dacf96d
3 changed files with 16 additions and 28 deletions

View file

@ -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,

View file

@ -3,7 +3,7 @@
* Open \______ \ ____ ____ | | _\_ |__ _______ ___ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/ * \/ \/ \/ \/ \/
* $Id$ * $Id$
* *
@ -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;

View file

@ -1,10 +1,10 @@
/*************************************************************************** /***************************************************************************
* __________ __ ___. * __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/ * \/ \/ \/ \/ \/
* $Id$ * $Id$
* *
* Copyright (C) 2011 Thomas Martitz * Copyright (C) 2011 Thomas Martitz
@ -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);