blob: b9f40679f589d5412742771c6975de5bcb0441f7 [file] [log] [blame]
Arnaldo Carvalho de Melofd782602011-01-18 15:15:24 -02001#ifndef __PERF_THREAD_MAP_H
2#define __PERF_THREAD_MAP_H
3
4#include <sys/types.h>
Arnaldo Carvalho de Melo9ae7d332012-01-19 14:07:23 -02005#include <stdio.h>
Arnaldo Carvalho de Melofd782602011-01-18 15:15:24 -02006
Jiri Olsa38e89d22015-06-23 00:36:02 +02007struct thread_map_data {
8 pid_t pid;
9};
10
Arnaldo Carvalho de Melofd782602011-01-18 15:15:24 -020011struct thread_map {
12 int nr;
Jiri Olsa38e89d22015-06-23 00:36:02 +020013 struct thread_map_data map[];
Arnaldo Carvalho de Melofd782602011-01-18 15:15:24 -020014};
15
Arnaldo Carvalho de Melo641556c2014-10-10 12:03:46 -030016struct thread_map *thread_map__new_dummy(void);
Arnaldo Carvalho de Melofd782602011-01-18 15:15:24 -020017struct thread_map *thread_map__new_by_pid(pid_t pid);
18struct thread_map *thread_map__new_by_tid(pid_t tid);
Arnaldo Carvalho de Melo0d37aa32012-01-19 14:08:15 -020019struct thread_map *thread_map__new_by_uid(uid_t uid);
20struct thread_map *thread_map__new(pid_t pid, pid_t tid, uid_t uid);
David Ahernb52956c2012-02-08 09:32:52 -070021
22struct thread_map *thread_map__new_str(const char *pid,
23 const char *tid, uid_t uid);
24
Arnaldo Carvalho de Melofd782602011-01-18 15:15:24 -020025void thread_map__delete(struct thread_map *threads);
Arnaldo Carvalho de Melo9ae7d332012-01-19 14:07:23 -020026
27size_t thread_map__fprintf(struct thread_map *threads, FILE *fp);
28
Namhyung Kimb3a319d2013-03-11 16:43:14 +090029static inline int thread_map__nr(struct thread_map *threads)
30{
31 return threads ? threads->nr : 1;
32}
33
Jiri Olsae13798c2015-06-23 00:36:02 +020034static inline pid_t thread_map__pid(struct thread_map *map, int thread)
35{
Jiri Olsa38e89d22015-06-23 00:36:02 +020036 return map->map[thread].pid;
Jiri Olsae13798c2015-06-23 00:36:02 +020037}
38
39static inline void
40thread_map__set_pid(struct thread_map *map, int thread, pid_t pid)
41{
Jiri Olsa38e89d22015-06-23 00:36:02 +020042 map->map[thread].pid = pid;
Jiri Olsae13798c2015-06-23 00:36:02 +020043}
Arnaldo Carvalho de Melofd782602011-01-18 15:15:24 -020044#endif /* __PERF_THREAD_MAP_H */