Merge branch 'topic/simple' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[cascardo/linux.git] / tools / perf / util / env.h
1 #ifndef __PERF_ENV_H
2 #define __PERF_ENV_H
3
4 #include <linux/types.h>
5 #include "cpumap.h"
6
7 struct cpu_topology_map {
8         int     socket_id;
9         int     core_id;
10 };
11
12 struct cpu_cache_level {
13         u32     level;
14         u32     line_size;
15         u32     sets;
16         u32     ways;
17         char    *type;
18         char    *size;
19         char    *map;
20 };
21
22 struct numa_node {
23         u32              node;
24         u64              mem_total;
25         u64              mem_free;
26         struct cpu_map  *map;
27 };
28
29 struct perf_env {
30         char                    *hostname;
31         char                    *os_release;
32         char                    *version;
33         char                    *arch;
34         int                     nr_cpus_online;
35         int                     nr_cpus_avail;
36         char                    *cpu_desc;
37         char                    *cpuid;
38         unsigned long long      total_mem;
39         unsigned int            msr_pmu_type;
40
41         int                     nr_cmdline;
42         int                     nr_sibling_cores;
43         int                     nr_sibling_threads;
44         int                     nr_numa_nodes;
45         int                     nr_pmu_mappings;
46         int                     nr_groups;
47         char                    *cmdline;
48         const char              **cmdline_argv;
49         char                    *sibling_cores;
50         char                    *sibling_threads;
51         char                    *pmu_mappings;
52         struct cpu_topology_map *cpu;
53         struct cpu_cache_level  *caches;
54         int                      caches_cnt;
55         struct numa_node        *numa_nodes;
56 };
57
58 extern struct perf_env perf_env;
59
60 void perf_env__exit(struct perf_env *env);
61
62 int perf_env__set_cmdline(struct perf_env *env, int argc, const char *argv[]);
63
64 int perf_env__read_cpu_topology_map(struct perf_env *env);
65
66 void cpu_cache_level__free(struct cpu_cache_level *cache);
67 #endif /* __PERF_ENV_H */