| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef __CPUPOWER_CPUPOWER_H__ | |
| #define __CPUPOWER_CPUPOWER_H__ | |
| struct cpupower_topology { | |
| /* Amount of CPU cores, packages and threads per core in the system */ | |
| unsigned int cores; | |
| unsigned int pkgs; | |
| unsigned int threads; /* per core */ | |
| /* Array gets mallocated with cores entries, holding per core info */ | |
| struct cpuid_core_info *core_info; | |
| }; | |
| struct cpuid_core_info { | |
| int pkg; | |
| int core; | |
| int cpu; | |
| /* flags */ | |
| unsigned int is_online:1; | |
| }; | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| int get_cpu_topology(struct cpupower_topology *cpu_top); | |
| void cpu_topology_release(struct cpupower_topology cpu_top); | |
| int cpupower_is_cpu_online(unsigned int cpu); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif |