1e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#ifndef __PERF_TOOL_H 2e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#define __PERF_TOOL_H 3e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 4e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include <stdbool.h> 5e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 6e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_session; 7e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengunion perf_event; 8e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_evlist; 9e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_evsel; 10e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_sample; 11e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_tool; 12e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct machine; 13e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 14e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengtypedef int (*event_sample)(struct perf_tool *tool, union perf_event *event, 15e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_sample *sample, 16e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_evsel *evsel, struct machine *machine); 17e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 18e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengtypedef int (*event_op)(struct perf_tool *tool, union perf_event *event, 19e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_sample *sample, struct machine *machine); 20e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 21e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengtypedef int (*event_attr_op)(struct perf_tool *tool, 22e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng union perf_event *event, 23e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_evlist **pevlist); 24e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 25e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengtypedef int (*event_op2)(struct perf_tool *tool, union perf_event *event, 26e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_session *session); 27e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 28e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_tool { 29e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng event_sample sample, 30e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng read; 31e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng event_op mmap, 32e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng mmap2, 33e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng comm, 34e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng fork, 35e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng exit, 36e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng lost, 37e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng throttle, 38e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng unthrottle; 39e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng event_attr_op attr; 40e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng event_op2 tracing_data; 41e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng event_op2 finished_round, 42e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng build_id; 43e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng bool ordered_samples; 44e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng bool ordering_requires_timestamps; 45e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng}; 46e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 47e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#endif /* __PERF_TOOL_H */ 48