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