rockbox/firmware/target/hosted/cpuinfo-linux.h
Udo Schläpfer 6d3dc8fce0 iBasso DX50/DX90: CPU info enhancements.
System -> Debug (Keep Out) -> View CPU stats

Will now show the current cpufreq scaling governor, minimum, current and
maximum cpufreq scaling frequency for each CPU.

This may be genric for Android kernel based devices but is only enabled
for iBasso Devices. Other maintainers may choose do adopt this.

Change-Id: I53e212f8707bf2abaa557e297293fb559ac37058
2015-01-30 20:15:21 +01:00

68 lines
2.1 KiB
C

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2011 Thomas Martitz
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef __CPUINFO_LINUX_H__
#define __CPUINFO_LINUX_H__
#include <stdbool.h>
struct cpuusage {
long usage; /* in hundredth percent */
long utime; /* in clock ticks */
long stime; /* in clock ticks */
long rtime; /* in clock ticks */
long hz; /* how clock ticks per second */
};
struct time_state {
long frequency;
long time;
};
int cpuusage_linux(struct cpuusage* u);
int frequency_linux(int cpu, bool scaling);
#if defined(DX50) || defined(DX90)
/*
Get the current cpufreq scaling governor.
cpu [in]: The number of the cpu to query.
governor [out]: Buffer for the governor.
governor_size [in]: Size of the buffer for the governor.
Returns true on success, false else.
*/
bool current_scaling_governor(int cpu, char* governor, int governor_size);
/*
Get the minimum, current or maximum cpufreq scaling frequency.
cpu [in]: The number of the cpu to query.
Returns -1 failure.
*/
int min_scaling_frequency(int cpu);
int current_scaling_frequency(int cpu);
int max_scaling_frequency(int cpu);
#endif
int cpustatetimes_linux(int cpu, struct time_state* data, int max_elements);
int cpucount_linux(void);
#endif /* __CPUINFO_LINUX_H__ */