1a12b51c4SPaul Mackerras #ifndef __PERF_CPUMAP_H 2a12b51c4SPaul Mackerras #define __PERF_CPUMAP_H 3a12b51c4SPaul Mackerras 49ae7d335SArnaldo Carvalho de Melo #include <stdio.h> 5a14bb7a6SArnaldo Carvalho de Melo #include <stdbool.h> 69ae7d335SArnaldo Carvalho de Melo 760d567e2SArnaldo Carvalho de Melo struct cpu_map { 860d567e2SArnaldo Carvalho de Melo int nr; 960d567e2SArnaldo Carvalho de Melo int map[]; 1060d567e2SArnaldo Carvalho de Melo }; 1160d567e2SArnaldo Carvalho de Melo 1260d567e2SArnaldo Carvalho de Melo struct cpu_map *cpu_map__new(const char *cpu_list); 1360d567e2SArnaldo Carvalho de Melo struct cpu_map *cpu_map__dummy_new(void); 14915fce20SArnaldo Carvalho de Melo void cpu_map__delete(struct cpu_map *map); 157ae92e74SYan, Zheng struct cpu_map *cpu_map__read(FILE *file); 169ae7d335SArnaldo Carvalho de Melo size_t cpu_map__fprintf(struct cpu_map *map, FILE *fp); 179ae7d335SArnaldo Carvalho de Melo 18a14bb7a6SArnaldo Carvalho de Melo static inline int cpu_map__nr(const struct cpu_map *map) 19a14bb7a6SArnaldo Carvalho de Melo { 20a14bb7a6SArnaldo Carvalho de Melo return map ? map->nr : 1; 21a14bb7a6SArnaldo Carvalho de Melo } 22a14bb7a6SArnaldo Carvalho de Melo 23a14bb7a6SArnaldo Carvalho de Melo static inline bool cpu_map__all(const struct cpu_map *map) 24a14bb7a6SArnaldo Carvalho de Melo { 25a14bb7a6SArnaldo Carvalho de Melo return map ? map->map[0] == -1 : true; 26a14bb7a6SArnaldo Carvalho de Melo } 27a14bb7a6SArnaldo Carvalho de Melo 28a12b51c4SPaul Mackerras #endif /* __PERF_CPUMAP_H */ 29