xref: /aosp_15_r20/external/strace/perf_event_struct.h (revision cf84ac9a129d8ea9952db616b4e9b904c4bdde56)
1*cf84ac9aSAndroid Build Coastguard Worker #ifndef STRACE_LINUX_PERF_EVENT_STRUCT_H
2*cf84ac9aSAndroid Build Coastguard Worker #define STRACE_LINUX_PERF_EVENT_STRUCT_H
3*cf84ac9aSAndroid Build Coastguard Worker 
4*cf84ac9aSAndroid Build Coastguard Worker #include <stdint.h>
5*cf84ac9aSAndroid Build Coastguard Worker 
6*cf84ac9aSAndroid Build Coastguard Worker struct perf_event_attr {
7*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t type;
8*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t size;
9*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t config;
10*cf84ac9aSAndroid Build Coastguard Worker 	union {
11*cf84ac9aSAndroid Build Coastguard Worker 		uint64_t sample_period;
12*cf84ac9aSAndroid Build Coastguard Worker 		uint64_t sample_freq;
13*cf84ac9aSAndroid Build Coastguard Worker 	};
14*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t sample_type;
15*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t read_format;
16*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t disabled			:1,
17*cf84ac9aSAndroid Build Coastguard Worker 		 inherit			:1,
18*cf84ac9aSAndroid Build Coastguard Worker 		 pinned				:1,
19*cf84ac9aSAndroid Build Coastguard Worker 		 exclusive			:1,
20*cf84ac9aSAndroid Build Coastguard Worker 		 exclude_user			:1,
21*cf84ac9aSAndroid Build Coastguard Worker 		 exclude_kernel			:1,
22*cf84ac9aSAndroid Build Coastguard Worker 		 exclude_hv			:1,
23*cf84ac9aSAndroid Build Coastguard Worker 		 exclude_idle			:1,
24*cf84ac9aSAndroid Build Coastguard Worker 		 mmap				:1,
25*cf84ac9aSAndroid Build Coastguard Worker 		 comm				:1,
26*cf84ac9aSAndroid Build Coastguard Worker 		 freq				:1,
27*cf84ac9aSAndroid Build Coastguard Worker 		 inherit_stat			:1,
28*cf84ac9aSAndroid Build Coastguard Worker 		 enable_on_exec			:1,
29*cf84ac9aSAndroid Build Coastguard Worker 		 task				:1,
30*cf84ac9aSAndroid Build Coastguard Worker 		 watermark			:1,
31*cf84ac9aSAndroid Build Coastguard Worker 		 precise_ip			:2,
32*cf84ac9aSAndroid Build Coastguard Worker 		 mmap_data			:1,
33*cf84ac9aSAndroid Build Coastguard Worker 		 sample_id_all			:1,
34*cf84ac9aSAndroid Build Coastguard Worker 		 exclude_host			:1,
35*cf84ac9aSAndroid Build Coastguard Worker 		 exclude_guest			:1,
36*cf84ac9aSAndroid Build Coastguard Worker 		 exclude_callchain_kernel	:1,
37*cf84ac9aSAndroid Build Coastguard Worker 		 exclude_callchain_user		:1,
38*cf84ac9aSAndroid Build Coastguard Worker 		 mmap2				:1,
39*cf84ac9aSAndroid Build Coastguard Worker 		 comm_exec			:1,
40*cf84ac9aSAndroid Build Coastguard Worker 		 use_clockid			:1,
41*cf84ac9aSAndroid Build Coastguard Worker 		 context_switch			:1,
42*cf84ac9aSAndroid Build Coastguard Worker 		 write_backward			:1,
43*cf84ac9aSAndroid Build Coastguard Worker 		 namespaces			:1,
44*cf84ac9aSAndroid Build Coastguard Worker 		 __reserved_1			:35;
45*cf84ac9aSAndroid Build Coastguard Worker 	union {
46*cf84ac9aSAndroid Build Coastguard Worker 		uint32_t wakeup_events;
47*cf84ac9aSAndroid Build Coastguard Worker 		uint32_t wakeup_watermark;
48*cf84ac9aSAndroid Build Coastguard Worker 	};
49*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t bp_type;
50*cf84ac9aSAndroid Build Coastguard Worker 	union {
51*cf84ac9aSAndroid Build Coastguard Worker 		uint64_t bp_addr;
52*cf84ac9aSAndroid Build Coastguard Worker 		uint64_t config1;
53*cf84ac9aSAndroid Build Coastguard Worker 	};
54*cf84ac9aSAndroid Build Coastguard Worker 	/* End of ver 0 - 64 bytes */
55*cf84ac9aSAndroid Build Coastguard Worker 	union {
56*cf84ac9aSAndroid Build Coastguard Worker 		uint64_t bp_len;
57*cf84ac9aSAndroid Build Coastguard Worker 		uint64_t config2;
58*cf84ac9aSAndroid Build Coastguard Worker 	};
59*cf84ac9aSAndroid Build Coastguard Worker 	/* End of ver 1 - 72 bytes */
60*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t branch_sample_type;
61*cf84ac9aSAndroid Build Coastguard Worker 	/* End of ver 2 - 80 bytes */
62*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t sample_regs_user;
63*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t sample_stack_user;
64*cf84ac9aSAndroid Build Coastguard Worker 	int32_t  clockid;
65*cf84ac9aSAndroid Build Coastguard Worker 	/* End of ver 3 - 96 bytes */
66*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t sample_regs_intr;
67*cf84ac9aSAndroid Build Coastguard Worker 	/* End of ver 4 - 104 bytes */
68*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t aux_watermark;
69*cf84ac9aSAndroid Build Coastguard Worker 	uint16_t sample_max_stack;
70*cf84ac9aSAndroid Build Coastguard Worker 	uint16_t __reserved_2;
71*cf84ac9aSAndroid Build Coastguard Worker 	/* End of ver 5 - 112 bytes */
72*cf84ac9aSAndroid Build Coastguard Worker };
73*cf84ac9aSAndroid Build Coastguard Worker 
74*cf84ac9aSAndroid Build Coastguard Worker struct perf_event_query_bpf {
75*cf84ac9aSAndroid Build Coastguard Worker         uint32_t ids_len;
76*cf84ac9aSAndroid Build Coastguard Worker         uint32_t prog_cnt;
77*cf84ac9aSAndroid Build Coastguard Worker         uint32_t ids[0];
78*cf84ac9aSAndroid Build Coastguard Worker };
79*cf84ac9aSAndroid Build Coastguard Worker 
80*cf84ac9aSAndroid Build Coastguard Worker #endif /* !STRACE_LINUX_PERF_EVENT_STRUCT_H */
81