1361c99a6SArnaldo Carvalho de Melo #ifndef __PERF_EVLIST_H 2361c99a6SArnaldo Carvalho de Melo #define __PERF_EVLIST_H 1 3361c99a6SArnaldo Carvalho de Melo 4361c99a6SArnaldo Carvalho de Melo #include <linux/list.h> 570db7533SArnaldo Carvalho de Melo #include "../perf.h" 604391debSArnaldo Carvalho de Melo #include "event.h" 7361c99a6SArnaldo Carvalho de Melo 85c581041SArnaldo Carvalho de Melo struct pollfd; 95c581041SArnaldo Carvalho de Melo 1070db7533SArnaldo Carvalho de Melo #define PERF_EVLIST__HLIST_BITS 8 1170db7533SArnaldo Carvalho de Melo #define PERF_EVLIST__HLIST_SIZE (1 << PERF_EVLIST__HLIST_BITS) 1270db7533SArnaldo Carvalho de Melo 13361c99a6SArnaldo Carvalho de Melo struct perf_evlist { 14361c99a6SArnaldo Carvalho de Melo struct list_head entries; 1570db7533SArnaldo Carvalho de Melo struct hlist_head heads[PERF_EVLIST__HLIST_SIZE]; 16361c99a6SArnaldo Carvalho de Melo int nr_entries; 175c581041SArnaldo Carvalho de Melo int nr_fds; 1870db7533SArnaldo Carvalho de Melo int mmap_len; 1904391debSArnaldo Carvalho de Melo event_t event_copy; 2070db7533SArnaldo Carvalho de Melo struct perf_mmap *mmap; 215c581041SArnaldo Carvalho de Melo struct pollfd *pollfd; 22361c99a6SArnaldo Carvalho de Melo }; 23361c99a6SArnaldo Carvalho de Melo 24361c99a6SArnaldo Carvalho de Melo struct perf_evsel; 25361c99a6SArnaldo Carvalho de Melo 26361c99a6SArnaldo Carvalho de Melo struct perf_evlist *perf_evlist__new(void); 27361c99a6SArnaldo Carvalho de Melo void perf_evlist__delete(struct perf_evlist *evlist); 28361c99a6SArnaldo Carvalho de Melo 29361c99a6SArnaldo Carvalho de Melo void perf_evlist__add(struct perf_evlist *evlist, struct perf_evsel *entry); 30361c99a6SArnaldo Carvalho de Melo int perf_evlist__add_default(struct perf_evlist *evlist); 31361c99a6SArnaldo Carvalho de Melo 325c581041SArnaldo Carvalho de Melo int perf_evlist__alloc_pollfd(struct perf_evlist *evlist, int ncpus, int nthreads); 3370082dd9SArnaldo Carvalho de Melo void perf_evlist__add_pollfd(struct perf_evlist *evlist, int fd); 345c581041SArnaldo Carvalho de Melo 3570db7533SArnaldo Carvalho de Melo struct perf_evsel *perf_evlist__id2evsel(struct perf_evlist *evlist, u64 id); 3670db7533SArnaldo Carvalho de Melo 3704391debSArnaldo Carvalho de Melo event_t *perf_evlist__read_on_cpu(struct perf_evlist *self, int cpu); 3804391debSArnaldo Carvalho de Melo 39361c99a6SArnaldo Carvalho de Melo #endif /* __PERF_EVLIST_H */ 40