blob: 665d1f3dc9774b2d8160e1026fed269643553d0c [file] [log] [blame]
Frederic Weisbecker6baa0a52009-08-14 12:21:53 +02001#include <linux/rbtree.h>
2#include <linux/list.h>
3#include <unistd.h>
4#include "symbol.h"
5
6struct thread {
Ingo Molnarb5fae122009-09-11 12:12:54 +02007 struct rb_node rb_node;
8 struct list_head maps;
9 pid_t pid;
10 char *comm;
Frederic Weisbecker6baa0a52009-08-14 12:21:53 +020011};
12
13int thread__set_comm(struct thread *self, const char *comm);
14struct thread *
15threads__findnew(pid_t pid, struct rb_root *threads, struct thread **last_match);
Frederic Weisbecker5b447a62009-08-31 06:45:18 +020016struct thread *
17register_idle_thread(struct rb_root *threads, struct thread **last_match);
Frederic Weisbecker6baa0a52009-08-14 12:21:53 +020018void thread__insert_map(struct thread *self, struct map *map);
19int thread__fork(struct thread *self, struct thread *parent);
20struct map *thread__find_map(struct thread *self, u64 ip);
21size_t threads__fprintf(FILE *fp, struct rb_root *threads);