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