GNU Linux-libre 4.9.337-gnu1
[releases.git] / tools / power / cpupower / lib / cpupower.h
1 #ifndef __CPUPOWER_CPUPOWER_H__
2 #define __CPUPOWER_CPUPOWER_H__
3
4 struct cpupower_topology {
5         /* Amount of CPU cores, packages and threads per core in the system */
6         unsigned int cores;
7         unsigned int pkgs;
8         unsigned int threads; /* per core */
9
10         /* Array gets mallocated with cores entries, holding per core info */
11         struct cpuid_core_info *core_info;
12 };
13
14 struct cpuid_core_info {
15         int pkg;
16         int core;
17         int cpu;
18
19         /* flags */
20         unsigned int is_online:1;
21 };
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 int get_cpu_topology(struct cpupower_topology *cpu_top);
28 void cpu_topology_release(struct cpupower_topology cpu_top);
29 int cpupower_is_cpu_online(unsigned int cpu);
30
31 #ifdef __cplusplus
32 }
33 #endif
34
35 #endif