blob: 32aea3c1c2ad6efd174f6f67843134d033853fba [file] [log] [blame]
Frederic Weisbecker6baa0a5a2009-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;
Ingo Molnar0ec04e12009-09-16 17:40:48 +020010 char shortname[3];
Ingo Molnarb5fae122009-09-11 12:12:54 +020011 char *comm;
Frederic Weisbecker6baa0a5a2009-08-14 12:21:53 +020012};
13
14int thread__set_comm(struct thread *self, const char *comm);
15struct thread *
16threads__findnew(pid_t pid, struct rb_root *threads, struct thread **last_match);
Frederic Weisbecker5b447a62009-08-31 06:45:18 +020017struct thread *
18register_idle_thread(struct rb_root *threads, struct thread **last_match);
Frederic Weisbecker6baa0a5a2009-08-14 12:21:53 +020019void thread__insert_map(struct thread *self, struct map *map);
20int thread__fork(struct thread *self, struct thread *parent);
21struct map *thread__find_map(struct thread *self, u64 ip);
22size_t threads__fprintf(FILE *fp, struct rb_root *threads);