1e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#ifndef __PERF_THREAD_H 2e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#define __PERF_THREAD_H 3e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 4e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng/* ANDROID_CHANGE_BEGIN */ 5e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#if 0 6e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include <linux/rbtree.h> 7e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#else 8e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include "include/linux/rbtree.h" 9e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#endif 10e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng/* ANDROID_CHANGE_END */ 11e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include <unistd.h> 12e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include "symbol.h" 13e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 14e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengstruct thread { 15e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng union { 16e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng struct rb_node rb_node; 17e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng struct list_head node; 18e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng }; 19e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng struct map_groups mg; 20e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng pid_t pid; 21e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng char shortname[3]; 22e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng bool comm_set; 23e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng char *comm; 24e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng int comm_len; 25e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng}; 26e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 27e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengstruct perf_session; 28e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 29e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid thread__delete(struct thread *self); 30e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 31e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengint thread__set_comm(struct thread *self, const char *comm); 32e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengint thread__comm_len(struct thread *self); 33e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengstruct thread *perf_session__findnew(struct perf_session *self, pid_t pid); 34e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid thread__insert_map(struct thread *self, struct map *map); 35e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengint thread__fork(struct thread *self, struct thread *parent); 36e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengsize_t perf_session__fprintf(struct perf_session *self, FILE *fp); 37e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 38e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengstatic inline struct map *thread__find_map(struct thread *self, 39e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng enum map_type type, u64 addr) 40e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng{ 41e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng return self ? map_groups__find(&self->mg, type, addr) : NULL; 42e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng} 43e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 44e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid thread__find_addr_map(struct thread *self, 45e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng struct perf_session *session, u8 cpumode, 46e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng enum map_type type, pid_t pid, u64 addr, 47e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng struct addr_location *al); 48e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 49e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid thread__find_addr_location(struct thread *self, 50e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng struct perf_session *session, u8 cpumode, 51e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng enum map_type type, pid_t pid, u64 addr, 52e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng struct addr_location *al, 53e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng symbol_filter_t filter); 54e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#endif /* __PERF_THREAD_H */ 55