1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __PERF_CPUTOPO_H 3#define __PERF_CPUTOPO_H 4 5#include <linux/types.h> 6 7struct cpu_topology { 8 u32 core_sib; 9 u32 die_sib; 10 u32 thread_sib; 11 char **core_siblings; 12 char **die_siblings; 13 char **thread_siblings; 14}; 15 16struct numa_topology_node { 17 char *cpus; 18 u32 node; 19 u64 mem_total; 20 u64 mem_free; 21}; 22 23struct numa_topology { 24 u32 nr; 25 struct numa_topology_node nodes[]; 26}; 27 28struct hybrid_topology_node { 29 char *pmu_name; 30 char *cpus; 31}; 32 33struct hybrid_topology { 34 u32 nr; 35 struct hybrid_topology_node nodes[]; 36}; 37 38struct cpu_topology *cpu_topology__new(void); 39void cpu_topology__delete(struct cpu_topology *tp); 40 41struct numa_topology *numa_topology__new(void); 42void numa_topology__delete(struct numa_topology *tp); 43 44struct hybrid_topology *hybrid_topology__new(void); 45void hybrid_topology__delete(struct hybrid_topology *tp); 46 47#endif /* __PERF_CPUTOPO_H */ 48