1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __LIBPERF_EVENT_H
3 #define __LIBPERF_EVENT_H
5 #include <linux/perf_event.h>
6 #include <linux/types.h>
7 #include <linux/limits.h>
9 #include <sys/types.h> /* pid_t */
11 struct perf_record_mmap {
12 struct perf_event_header header;
17 char filename[PATH_MAX];
20 struct perf_record_mmap2 {
21 struct perf_event_header header;
32 char filename[PATH_MAX];
35 struct perf_record_comm {
36 struct perf_event_header header;
41 struct perf_record_namespaces {
42 struct perf_event_header header;
45 struct perf_ns_link_info link_info[];
48 struct perf_record_fork {
49 struct perf_event_header header;
55 struct perf_record_lost {
56 struct perf_event_header header;
61 struct perf_record_lost_samples {
62 struct perf_event_header header;
67 * PERF_FORMAT_ENABLED | PERF_FORMAT_RUNNING | PERF_FORMAT_ID
69 struct perf_record_read {
70 struct perf_event_header header;
78 struct perf_record_throttle {
79 struct perf_event_header header;
86 #define KSYM_NAME_LEN 256
89 struct perf_record_ksymbol {
90 struct perf_event_header header;
95 char name[KSYM_NAME_LEN];
98 struct perf_record_bpf_event {
99 struct perf_event_header header;
104 /* for bpf_prog types */
105 __u8 tag[BPF_TAG_SIZE]; // prog tag
108 struct perf_record_sample {
109 struct perf_event_header header;
114 struct perf_event_header header;
115 struct perf_event_attr attr;
120 PERF_CPU_MAP__CPUS = 0,
121 PERF_CPU_MAP__MASK = 1,
124 struct cpu_map_entries {
129 struct cpu_map_mask {
132 unsigned long mask[];
135 struct cpu_map_data {
140 struct cpu_map_event {
141 struct perf_event_header header;
142 struct cpu_map_data data;
146 PERF_EVENT_UPDATE__UNIT = 0,
147 PERF_EVENT_UPDATE__SCALE = 1,
148 PERF_EVENT_UPDATE__NAME = 2,
149 PERF_EVENT_UPDATE__CPUS = 3,
152 struct event_update_event_cpus {
153 struct cpu_map_data cpus;
156 struct event_update_event_scale {
160 struct event_update_event {
161 struct perf_event_header header;
167 #define MAX_EVENT_NAME 64
169 struct perf_trace_event_type {
171 char name[MAX_EVENT_NAME];
174 struct event_type_event {
175 struct perf_event_header header;
176 struct perf_trace_event_type event_type;
179 struct tracing_data_event {
180 struct perf_event_header header;
184 struct build_id_event {
185 struct perf_event_header header;
191 struct id_index_entry {
198 struct id_index_event {
199 struct perf_event_header header;
201 struct id_index_entry entries[0];
204 struct auxtrace_info_event {
205 struct perf_event_header header;
207 __u32 reserved__; /* For alignment */
211 struct auxtrace_event {
212 struct perf_event_header header;
219 __u32 reserved__; /* For alignment */
222 #define MAX_AUXTRACE_ERROR_MSG 64
224 struct auxtrace_error_event {
225 struct perf_event_header header;
234 char msg[MAX_AUXTRACE_ERROR_MSG];
237 #endif /* __LIBPERF_EVENT_H */