1 #ifndef _PERF_UTIL_TRACE_EVENT_H 2 #define _PERF_UTIL_TRACE_EVENT_H 3 4 #include <traceevent/event-parse.h> 5 #include "parse-events.h" 6 #include "session.h" 7 8 struct machine; 9 struct perf_sample; 10 union perf_event; 11 struct perf_tool; 12 struct thread; 13 14 int bigendian(void); 15 16 struct pevent *read_trace_init(int file_bigendian, int host_bigendian); 17 void event_format__print(struct event_format *event, 18 int cpu, void *data, int size); 19 20 int parse_ftrace_file(struct pevent *pevent, char *buf, unsigned long size); 21 int parse_event_file(struct pevent *pevent, 22 char *buf, unsigned long size, char *sys); 23 24 unsigned long long 25 raw_field_value(struct event_format *event, const char *name, void *data); 26 27 void parse_proc_kallsyms(struct pevent *pevent, char *file, unsigned int size); 28 void parse_ftrace_printk(struct pevent *pevent, char *file, unsigned int size); 29 30 ssize_t trace_report(int fd, struct pevent **pevent, bool repipe); 31 32 struct event_format *trace_find_next_event(struct pevent *pevent, 33 struct event_format *event); 34 unsigned long long read_size(struct event_format *event, void *ptr, int size); 35 unsigned long long eval_flag(const char *flag); 36 37 int read_tracing_data(int fd, struct list_head *pattrs); 38 39 struct tracing_data { 40 /* size is only valid if temp is 'true' */ 41 ssize_t size; 42 bool temp; 43 char temp_file[50]; 44 }; 45 46 struct tracing_data *tracing_data_get(struct list_head *pattrs, 47 int fd, bool temp); 48 int tracing_data_put(struct tracing_data *tdata); 49 50 51 struct addr_location; 52 53 struct perf_session; 54 55 struct scripting_ops { 56 const char *name; 57 int (*start_script) (const char *script, int argc, const char **argv); 58 int (*stop_script) (void); 59 void (*process_event) (union perf_event *event, 60 struct perf_sample *sample, 61 struct perf_evsel *evsel, 62 struct machine *machine, 63 struct thread *thread, 64 struct addr_location *al); 65 int (*generate_script) (struct pevent *pevent, const char *outfile); 66 }; 67 68 int script_spec_register(const char *spec, struct scripting_ops *ops); 69 70 void setup_perl_scripting(void); 71 void setup_python_scripting(void); 72 73 struct scripting_context { 74 struct pevent *pevent; 75 void *event_data; 76 }; 77 78 int common_pc(struct scripting_context *context); 79 int common_flags(struct scripting_context *context); 80 int common_lock_depth(struct scripting_context *context); 81 82 #endif /* _PERF_UTIL_TRACE_EVENT_H */ 83