(root)/
strace-6.5/
src/
perf_event_struct.h
       1  /*
       2   * Copyright (c) 2016-2018 Eugene Syromyatnikov <evgsyr@gmail.com>
       3   * Copyright (c) 2016-2023 The strace developers.
       4   * All rights reserved.
       5   *
       6   * SPDX-License-Identifier: LGPL-2.1-or-later
       7   */
       8  
       9  #ifndef STRACE_LINUX_PERF_EVENT_STRUCT_H
      10  # define STRACE_LINUX_PERF_EVENT_STRUCT_H
      11  
      12  # include <stdint.h>
      13  
      14  # define PERF_PMU_TYPE_SHIFT            32
      15  # define PERF_HW_EVENT_MASK             0xffffffff
      16  
      17  struct perf_event_attr {
      18  	uint32_t type;
      19  	uint32_t size;
      20  	uint64_t config;
      21  	union {
      22  		uint64_t sample_period;
      23  		uint64_t sample_freq;
      24  	};
      25  	uint64_t sample_type;
      26  	uint64_t read_format;
      27  	uint64_t disabled			:1,
      28  		 inherit			:1,
      29  		 pinned				:1,
      30  		 exclusive			:1,
      31  		 exclude_user			:1,
      32  		 exclude_kernel			:1,
      33  		 exclude_hv			:1,
      34  		 exclude_idle			:1,
      35  		 mmap				:1,
      36  		 comm				:1,
      37  		 freq				:1,
      38  		 inherit_stat			:1,
      39  		 enable_on_exec			:1,
      40  		 task				:1,
      41  		 watermark			:1,
      42  		 precise_ip			:2,
      43  		 mmap_data			:1,
      44  		 sample_id_all			:1,
      45  		 exclude_host			:1,
      46  		 exclude_guest			:1,
      47  		 exclude_callchain_kernel	:1,
      48  		 exclude_callchain_user		:1,
      49  		 mmap2				:1,
      50  		 comm_exec			:1,
      51  		 use_clockid			:1,
      52  		 context_switch			:1,
      53  		 write_backward			:1,
      54  		 namespaces			:1,
      55  		 ksymbol			:1,
      56  		 bpf_event			:1,
      57  		 aux_output			:1,
      58  		 cgroup				:1,
      59  		 text_poke			:1,
      60  		 build_id			:1,
      61  		 inherit_thread			:1,
      62  		 remove_on_exec			:1,
      63  		 sigtrap			:1,
      64  		 __reserved_1			:26;
      65  	union {
      66  		uint32_t wakeup_events;
      67  		uint32_t wakeup_watermark;
      68  	};
      69  	uint32_t bp_type;
      70  	union {
      71  		uint64_t bp_addr;
      72  		uint64_t config1;
      73  	};
      74  	/* End of ver 0 - 64 bytes */
      75  	union {
      76  		uint64_t bp_len;
      77  		uint64_t config2;
      78  	};
      79  	/* End of ver 1 - 72 bytes */
      80  	uint64_t branch_sample_type;
      81  	/* End of ver 2 - 80 bytes */
      82  	uint64_t sample_regs_user;
      83  	uint32_t sample_stack_user;
      84  	int32_t  clockid;
      85  	/* End of ver 3 - 96 bytes */
      86  	uint64_t sample_regs_intr;
      87  	/* End of ver 4 - 104 bytes */
      88  	uint32_t aux_watermark;
      89  	uint16_t sample_max_stack;
      90  	uint16_t __reserved_2;
      91  	/* End of ver 5 - 112 bytes */
      92  	uint32_t aux_sample_size;
      93  	uint32_t __reserved_3;
      94  	/* End of ver 6 - 120 bytes */
      95  	uint64_t sig_data;
      96  	/* End of ver 7 - 128 bytes */
      97  	uint64_t config3;
      98  	/* End of ver 8 - 136 bytes */
      99  };
     100  
     101  struct perf_event_query_bpf {
     102          uint32_t ids_len;
     103          uint32_t prog_cnt;
     104          uint32_t ids[0];
     105  };
     106  
     107  #endif /* !STRACE_LINUX_PERF_EVENT_STRUCT_H */