1 /* SPDX-License-Identifier: GPL-2.0 */ << 2 #ifndef __CPUPOWER_CPUPOWER_H__ 1 #ifndef __CPUPOWER_CPUPOWER_H__ 3 #define __CPUPOWER_CPUPOWER_H__ 2 #define __CPUPOWER_CPUPOWER_H__ 4 3 5 struct cpupower_topology { 4 struct cpupower_topology { 6 /* Amount of CPU cores, packages and t 5 /* Amount of CPU cores, packages and threads per core in the system */ 7 unsigned int cores; 6 unsigned int cores; 8 unsigned int pkgs; 7 unsigned int pkgs; 9 unsigned int threads; /* per core */ 8 unsigned int threads; /* per core */ 10 9 11 /* Array gets mallocated with cores en 10 /* Array gets mallocated with cores entries, holding per core info */ 12 struct cpuid_core_info *core_info; 11 struct cpuid_core_info *core_info; 13 }; 12 }; 14 13 15 struct cpuid_core_info { 14 struct cpuid_core_info { 16 int pkg; 15 int pkg; 17 int core; 16 int core; 18 int cpu; 17 int cpu; 19 18 20 /* flags */ 19 /* flags */ 21 unsigned int is_online:1; 20 unsigned int is_online:1; 22 }; 21 }; 23 22 24 #ifdef __cplusplus 23 #ifdef __cplusplus 25 extern "C" { 24 extern "C" { 26 #endif 25 #endif 27 26 28 int get_cpu_topology(struct cpupower_topology 27 int get_cpu_topology(struct cpupower_topology *cpu_top); 29 void cpu_topology_release(struct cpupower_topo 28 void cpu_topology_release(struct cpupower_topology cpu_top); 30 int cpupower_is_cpu_online(unsigned int cpu); 29 int cpupower_is_cpu_online(unsigned int cpu); 31 30 32 #ifdef __cplusplus 31 #ifdef __cplusplus 33 } 32 } 34 #endif 33 #endif 35 34 36 #endif 35 #endif 37 36
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.