~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/perf/util/session.h

Version: ~ [ linux-5.12-rc1 ] ~ [ linux-5.11.2 ] ~ [ linux-5.10.19 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.101 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.177 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.222 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.258 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.258 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef __PERF_SESSION_H
  2 #define __PERF_SESSION_H
  3 
  4 #include "trace-event.h"
  5 #include "event.h"
  6 #include "header.h"
  7 #include "machine.h"
  8 #include "symbol.h"
  9 #include "thread.h"
 10 #include "data.h"
 11 #include "ordered-events.h"
 12 #include <linux/rbtree.h>
 13 #include <linux/perf_event.h>
 14 
 15 struct ip_callchain;
 16 struct thread;
 17 
 18 struct auxtrace;
 19 struct itrace_synth_opts;
 20 
 21 struct perf_session {
 22         struct perf_header      header;
 23         struct machines         machines;
 24         struct perf_evlist      *evlist;
 25         struct auxtrace         *auxtrace;
 26         struct itrace_synth_opts *itrace_synth_opts;
 27         struct list_head        auxtrace_index;
 28         struct trace_event      tevent;
 29         struct time_conv_event  time_conv;
 30         bool                    repipe;
 31         bool                    one_mmap;
 32         void                    *one_mmap_addr;
 33         u64                     one_mmap_offset;
 34         struct ordered_events   ordered_events;
 35         struct perf_data_file   *file;
 36         struct perf_tool        *tool;
 37 };
 38 
 39 struct perf_tool;
 40 
 41 struct perf_session *perf_session__new(struct perf_data_file *file,
 42                                        bool repipe, struct perf_tool *tool);
 43 void perf_session__delete(struct perf_session *session);
 44 
 45 void perf_event_header__bswap(struct perf_event_header *hdr);
 46 
 47 int perf_session__peek_event(struct perf_session *session, off_t file_offset,
 48                              void *buf, size_t buf_sz,
 49                              union perf_event **event_ptr,
 50                              struct perf_sample *sample);
 51 
 52 int perf_session__process_events(struct perf_session *session);
 53 
 54 int perf_session__queue_event(struct perf_session *s, union perf_event *event,
 55                               struct perf_sample *sample, u64 file_offset);
 56 
 57 void perf_tool__fill_defaults(struct perf_tool *tool);
 58 
 59 int perf_session__resolve_callchain(struct perf_session *session,
 60                                     struct perf_evsel *evsel,
 61                                     struct thread *thread,
 62                                     struct ip_callchain *chain,
 63                                     struct symbol **parent);
 64 
 65 bool perf_session__has_traces(struct perf_session *session, const char *msg);
 66 
 67 void perf_event__attr_swap(struct perf_event_attr *attr);
 68 
 69 int perf_session__create_kernel_maps(struct perf_session *session);
 70 
 71 void perf_session__set_id_hdr_size(struct perf_session *session);
 72 
 73 static inline
 74 struct machine *perf_session__find_machine(struct perf_session *session, pid_t pid)
 75 {
 76         return machines__find(&session->machines, pid);
 77 }
 78 
 79 static inline
 80 struct machine *perf_session__findnew_machine(struct perf_session *session, pid_t pid)
 81 {
 82         return machines__findnew(&session->machines, pid);
 83 }
 84 
 85 struct thread *perf_session__findnew(struct perf_session *session, pid_t pid);
 86 int perf_session__register_idle_thread(struct perf_session *session);
 87 
 88 size_t perf_session__fprintf(struct perf_session *session, FILE *fp);
 89 
 90 size_t perf_session__fprintf_dsos(struct perf_session *session, FILE *fp);
 91 
 92 size_t perf_session__fprintf_dsos_buildid(struct perf_session *session, FILE *fp,
 93                                           bool (fn)(struct dso *dso, int parm), int parm);
 94 
 95 size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp);
 96 
 97 struct perf_evsel *perf_session__find_first_evtype(struct perf_session *session,
 98                                             unsigned int type);
 99 
100 int perf_session__cpu_bitmap(struct perf_session *session,
101                              const char *cpu_list, unsigned long *cpu_bitmap);
102 
103 void perf_session__fprintf_info(struct perf_session *s, FILE *fp, bool full);
104 
105 struct perf_evsel_str_handler;
106 
107 int __perf_session__set_tracepoints_handlers(struct perf_session *session,
108                                              const struct perf_evsel_str_handler *assocs,
109                                              size_t nr_assocs);
110 
111 #define perf_session__set_tracepoints_handlers(session, array) \
112         __perf_session__set_tracepoints_handlers(session, array, ARRAY_SIZE(array))
113 
114 extern volatile int session_done;
115 
116 #define session_done()  ACCESS_ONCE(session_done)
117 
118 int perf_session__deliver_synth_event(struct perf_session *session,
119                                       union perf_event *event,
120                                       struct perf_sample *sample);
121 
122 int perf_event__process_id_index(struct perf_tool *tool,
123                                  union perf_event *event,
124                                  struct perf_session *session);
125 
126 int perf_event__synthesize_id_index(struct perf_tool *tool,
127                                     perf_event__handler_t process,
128                                     struct perf_evlist *evlist,
129                                     struct machine *machine);
130 
131 #endif /* __PERF_SESSION_H */
132 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp