|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | #ifndef __PERF_ENV_H | 
|  | #define __PERF_ENV_H | 
|  |  | 
|  | #include <linux/types.h> | 
|  | #include "cpumap.h" | 
|  |  | 
|  | struct cpu_topology_map { | 
|  | int	socket_id; | 
|  | int	core_id; | 
|  | }; | 
|  |  | 
|  | struct cpu_cache_level { | 
|  | u32	level; | 
|  | u32	line_size; | 
|  | u32	sets; | 
|  | u32	ways; | 
|  | char	*type; | 
|  | char	*size; | 
|  | char	*map; | 
|  | }; | 
|  |  | 
|  | struct numa_node { | 
|  | u32		 node; | 
|  | u64		 mem_total; | 
|  | u64		 mem_free; | 
|  | struct cpu_map	*map; | 
|  | }; | 
|  |  | 
|  | struct memory_node { | 
|  | u64		 node; | 
|  | u64		 size; | 
|  | unsigned long	*set; | 
|  | }; | 
|  |  | 
|  | struct perf_env { | 
|  | char			*hostname; | 
|  | char			*os_release; | 
|  | char			*version; | 
|  | char			*arch; | 
|  | int			nr_cpus_online; | 
|  | int			nr_cpus_avail; | 
|  | char			*cpu_desc; | 
|  | char			*cpuid; | 
|  | unsigned long long	total_mem; | 
|  | unsigned int		msr_pmu_type; | 
|  |  | 
|  | int			nr_cmdline; | 
|  | int			nr_sibling_cores; | 
|  | int			nr_sibling_threads; | 
|  | int			nr_numa_nodes; | 
|  | int			nr_memory_nodes; | 
|  | int			nr_pmu_mappings; | 
|  | int			nr_groups; | 
|  | char			*cmdline; | 
|  | const char		**cmdline_argv; | 
|  | char			*sibling_cores; | 
|  | char			*sibling_threads; | 
|  | char			*pmu_mappings; | 
|  | struct cpu_topology_map	*cpu; | 
|  | struct cpu_cache_level	*caches; | 
|  | int			 caches_cnt; | 
|  | struct numa_node	*numa_nodes; | 
|  | struct memory_node	*memory_nodes; | 
|  | unsigned long long	 memory_bsize; | 
|  | }; | 
|  |  | 
|  | extern struct perf_env perf_env; | 
|  |  | 
|  | void perf_env__exit(struct perf_env *env); | 
|  |  | 
|  | int perf_env__set_cmdline(struct perf_env *env, int argc, const char *argv[]); | 
|  |  | 
|  | int perf_env__read_cpu_topology_map(struct perf_env *env); | 
|  |  | 
|  | void cpu_cache_level__free(struct cpu_cache_level *cache); | 
|  |  | 
|  | const char *perf_env__arch(struct perf_env *env); | 
|  | const char *perf_env__raw_arch(struct perf_env *env); | 
|  | int perf_env__nr_cpus_avail(struct perf_env *env); | 
|  |  | 
|  | #endif /* __PERF_ENV_H */ |