env.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef __PERF_ENV_H
  2. #define __PERF_ENV_H
  3. #include <linux/types.h>
  4. struct cpu_topology_map {
  5. int socket_id;
  6. int core_id;
  7. };
  8. struct cpu_cache_level {
  9. u32 level;
  10. u32 line_size;
  11. u32 sets;
  12. u32 ways;
  13. char *type;
  14. char *size;
  15. char *map;
  16. };
  17. struct perf_env {
  18. char *hostname;
  19. char *os_release;
  20. char *version;
  21. char *arch;
  22. int nr_cpus_online;
  23. int nr_cpus_avail;
  24. char *cpu_desc;
  25. char *cpuid;
  26. unsigned long long total_mem;
  27. unsigned int msr_pmu_type;
  28. int nr_cmdline;
  29. int nr_sibling_cores;
  30. int nr_sibling_threads;
  31. int nr_numa_nodes;
  32. int nr_pmu_mappings;
  33. int nr_groups;
  34. char *cmdline;
  35. const char **cmdline_argv;
  36. char *sibling_cores;
  37. char *sibling_threads;
  38. char *numa_nodes;
  39. char *pmu_mappings;
  40. struct cpu_topology_map *cpu;
  41. struct cpu_cache_level *caches;
  42. int caches_cnt;
  43. };
  44. extern struct perf_env perf_env;
  45. void perf_env__exit(struct perf_env *env);
  46. int perf_env__set_cmdline(struct perf_env *env, int argc, const char *argv[]);
  47. int perf_env__read_cpu_topology_map(struct perf_env *env);
  48. void cpu_cache_level__free(struct cpu_cache_level *cache);
  49. #endif /* __PERF_ENV_H */